Software Design Pattern

도형 편집기로 배우는 객체 지향의 원리

잠재우기 2017. 11. 20. 00:00

도형 편집기로 배우는 객체 지향의 원리

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 재사용에는 상속과 포함이 있다.

- 포함이 좋을 때가 많다.