Whiteship's Note


객체지향 디자인 원칙

Design Pattern : 2006.12.11 15:46


바뀌는 부분은 캡슐화한다.

상속보다는 구성을 활용한다.

구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다.

서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.


클래스는 확장에 대해서는 열려있지만 변경에 대해서는 닫혀 있어야 한다.

추상화된 것에 의존하라. 구상 클래스에 의존하지 않도록 한다.

친한 친구들하고만 이야기한다.

먼저 연락하지 마세요. 저희가 연락드리겠습니다.

어떤 클래스가 바뀌게 되는 이유는 한 가지 뿐이어야 한다.


원칙은 원칙일뿐 목적이나 법칙은 아닙니다.

참조 : Head First Design Patterns


ps : 시험 끝~~~~~~~

'Design Pattern' 카테고리의 다른 글

프록시(Proxy) 패턴  (0) 2008.09.26
JUnit 공부하자.  (0) 2008.09.01
H.F.OOAD 5장 문제  (0) 2007.11.20
상위 클래스 보다는 인터페이스를...  (4) 2007.08.31
Singletons and lazy loading  (2) 2007.01.27
객체지향 디자인 원칙  (2) 2006.12.11
Losely Coupled를 활용하라.  (0) 2006.12.11
상속보다는 구성을 활용한다.  (0) 2006.12.11
바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
top


Losely Coupled를 활용하라.

Design Pattern : 2006.12.11 15:19


서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다. 라는 원칙인데 간단히 줄여봤습니다.

2장 Observer Pattern
=> WheatherData와 Display가 서로 인터페이스를 가지고 있슴으로 해서 둘의 종속성을 느슨하게 했습니다. p91

쌍방간에 인터페이스를 활용한 예제는 2장 Observer Pattern 밖에 없는 것 같습니다. 단방향으로 느슨한 결합은 거의 단원에서 보여지고 있기 때문에 생략합니다.

'Design Pattern' 카테고리의 다른 글

JUnit 공부하자.  (0) 2008.09.01
H.F.OOAD 5장 문제  (0) 2007.11.20
상위 클래스 보다는 인터페이스를...  (4) 2007.08.31
Singletons and lazy loading  (2) 2007.01.27
객체지향 디자인 원칙  (2) 2006.12.11
Losely Coupled를 활용하라.  (0) 2006.12.11
상속보다는 구성을 활용한다.  (0) 2006.12.11
바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
H.F. Design Pattern 트집잡기  (4) 2006.12.09
top


상속보다는 구성을 활용한다.

Design Pattern : 2006.12.11 15:06


1장 Stratey Pattern
=> Duck 클래스에서 Flyable과 Quackable 인터페이스를 가지고 있습니다. p44

3장 Decorator Pattern
=> CondimentalDecorator는 상속과 Composition을 둘 다 활용하고 있습니다. p130

4장 Factory Pattern
=> 각각의 PizzaStore는 PizzaIngredientFacrory 인터페이스를 가지고 있습니다. p195

7장 Adapter Pattern
=> 객체 어댑터의 경우 Compositon을 활용하여 유연성을 높이고 있습니다. p283

9장 Composite Pattern
=> Decorator Pattern과 비슷한 모양으로 상속과 Composition 둘 다 활용하고 있습니다. p396

10장 State Pattern
=> GumballMachine이 모든 Sate들을 가지고 있습니다. p448


'Design Pattern' 카테고리의 다른 글

H.F.OOAD 5장 문제  (0) 2007.11.20
상위 클래스 보다는 인터페이스를...  (4) 2007.08.31
Singletons and lazy loading  (2) 2007.01.27
객체지향 디자인 원칙  (2) 2006.12.11
Losely Coupled를 활용하라.  (0) 2006.12.11
상속보다는 구성을 활용한다.  (0) 2006.12.11
바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
H.F. Design Pattern 트집잡기  (4) 2006.12.09
Design Pattern 기말고사  (0) 2006.12.08
top


바뀌는 부분을 캡슐화 한다.

Design Pattern : 2006.12.11 14:30


1장 Stratey Pattern
=> fly()와 quack()이 여러 형태가 존재하기 때문에 interface로 따로 빼내었습니다. p44

2장 Observer Pattern
=> display()를 따로 빼내었습니다. p79

3장 Decorator Pattern
=> cost()를 따로 빼내었습니다. p120

4장 Factory Pattern
=> orderPizza()를 팩토리 메소드로 빼냈습니다. p150

5장 Command Pattern
=> 요구사항(action())을 커맨드 객체로 캡슐화 p244

8장 Template Pattern
=> 알고리즘 캡슐화
top