IT 지식/소프트웨어 공학

피터 코드의 상속 규칙

반응형

상속의 오용을 막기위해 상속의 사용을 엄격하게 제한한다.
하위에 존재하는 규칙중 하나라도 만족하지 못한다면 상속을 하지 않아야한다.

1. 자식 클래스와 부모 클래스 사이의 '역할 수행' 관계가 아니어야 한다.
-> 요리사는 사람이라는 범주를 상속해서는 안된다. 
-> 요리사라는 것은 사람이라는 속성의 하나이다.

2. 한 클래스의 인스턴스는 다른 서브 클래스의 객체로 변환할 필요가 없어야 한다.
-> 엄마라는 객체는 누군가의 딸이라는 객체가 될 수 있다. 
-> 이런 속성 변경이 잦을 경우에는 객체의 변환 작업이 필요해서 해서는 안된다.

3. 자식클래스가 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행해야 한다.

4. 자식클래스가 단진 부모클래스의 일부 클래스의 기능을 재사용하기 위한 역할로 클래스를 상속하지 말아야 한다.

5. 자식 클래스가 역할, 트랜잭션 등을 특수화 해야한다.

반응형