패턴의 필요성
- 전문 용어의 위력: 서로 알고 있는 패턴 용어는 정말 막강하다, 패턴을 이용하면 간단한 단어로 많은 것을 얘기할 수 있다. 패턴 수준에서 이야기를 하면 "디자인"에 더 오랫동안 집중할 수 있다. 전문용어를 사용하면 개발 팀의 능력을 극대화 할 수 있다. 전문용어는 신참 개발자들에게 훌륭한 자극제가 된다.
- 객체지향 기초지식만 가지고는 훌륭한 객체지향 디자이너가 될 수 없다.
- 훌륭한 객체 지향 디자인이라면 재사용성, 확장성, 관리의 용이성을 갖춰야 한다.
- 패턴은 훌륭한 객체지향 디자인 품질을 갖추고 있는 시스템을 만드는 방법을 제공해 준다.
- 패턴이 코드를 바로 제공해주는 것은 아니다. 디자인 문제에 대한 일반적인 해법을 제공. 특정 app에 패턴을 적용하는 것은 개발자의 몫
[객체지향의 기초]
- 추상화
- 캡슐화
- 다형성
- 상속
[객체지향 원칙]
- 바뀌는 부분은 캡슐화 한다.
- 상속보다는 구성을 활용한다.
- 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다.
- 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용한다. (유연하고 변화에 강하다)
- 클래스는 확장에 대해서는 열려 있지만 변경에 대해서는 닫혀 있어야 한다. (OCP, Open-Close-Principle)
[객체지향 패턴]
- Strategy Pattern: 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. Strategy Pattern을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. (interface)
- Observer Pattern: 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의합니다.
스윙 및 여러 GUI 프레임워크에서 옵저버 패턴이 많이 쓰인다. 그 뿐아니라 다른 부분에서도 광범위하게 쓰인다(JavaBean, RMI)
- Decorator Pattern: 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하며 서브 클래스를 만드는 경우에 비해 후러씬 유연하게 기능을 확장할 수 있다. (데코레이터 패턴을 사용하면 자잘한 객체들이 매우 많이 추가될 수 있고, 데코레이터를 너무 많이 사용하면 코드가 필요 이상으로 복잡해질 수도 있습니다)
'IT > Software 도서' 카테고리의 다른 글
훌륭한 개발자 (0) | 2014.09.30 |
---|---|
'Do First, Dream Next' 책 요약 정리 그리고 생각 (0) | 2013.07.02 |
김익환, '글로벌 소프트웨어를 꿈꾸다' 책 요약 정리 그리고 생각 (0) | 2012.12.02 |
임백준, '프로그래머 그 다음 이야기' 책 요약 정리 그리고 생각 (0) | 2012.11.01 |
데이브 후버, '프로그래머의 길 멘토에게 묻다' 책 요약 정리 그리고 생각 (0) | 2012.11.01 |