도형 편집기로 배우는 객체 지향의 원리
1. 모든 도형을 타입으로 만들면 편하다.
2. 모든 도형의 공통의 부모가 있다면 모든 도형을 묶어서 관리할 수 있다.
3. 모든 자식의 공통된 특징은 부모로부터 와야 한다.
: 그래야 부모의 레퍼런스로 자식을 사용할 때 해당하는 특징을
사용할 수 있다.
LSP(Liskov Substitution Principle)
도형 편집기로 배우는 객체 지향의 원리
4. 새로운 기능이 추가되어도 기존 코드는 수정되면 안된다.
OCP(Open Close Principle)
5. 다형성은 OCP를 만족한다.
6. 프로토타입 패턴(Prototype Pattern)
: 다형성을 통해 객체를 복사하는 방법
Java - Cloneable, C# - ICloneable
ObjC - Copyable
7. replace type code with Polymorphism (타입코드를 다형성으로 대체 해라!)
8. 공통성과 가변성의 분리
=> 변해야 하는 것과 변하지 않는 것은 분리되어야 한다.
변하지 않는 전체 흐름은 부모클래스가 제공하고, 변하는 것은 자식 클래스가 재정의 하는 설계 방법.
Template Method Pattern
C++ : NVI(Non Virtual Interface)
9. DRY 원칙 (Do Not Repeat Yourself) - 중복코드를 만들지 말자.
1. Vector가 이미 있다.
2. 그런데 클라이언트가 Stack을 요구한다.
1) 새롭게 다시 만들어 준다
2) 한쪽으로 데이터를 넣거나 빼면, 스택이다.
3. Adapter Pattern
// 기존 클래스의 인터페이스를 변경해서 클라이언트가 요구하는 새로운 클래스 처럼 보이게 만드는 패턴
4. 라이브러리 설계자 관점
S/W 재사용에는 상속과 포함이 있다.
- 포함이 좋을 때가 많다.
'Software Design Pattern' 카테고리의 다른 글
자바8의 인터페이스의 디폴트 메소드 와 관련된 3가지 규칙 (0) | 2017.11.22 |
---|---|
자바 클래스 라이브러리에서 사용하고 있는 어댑터 디자인패턴 (0) | 2017.11.21 |
SOLID 원칙 (0) | 2017.11.19 |
GoF’s 디자인 패턴 (0) | 2017.11.19 |
파일 와치 이벤트 (0) | 2017.11.18 |