본문 바로가기

Software Design Pattern

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

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

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

- 포함이 좋을 때가 많다.