Goal
- 디자인 패턴이란 무엇인지 알아보고 이해한다
- 디자인 패턴에 필요한 도구들과 그 종류들을 알아본다
디자인 패턴
프로그램을 작성하다 보면 비슷 비슷한 상황이 직면하게 되는 경우가 많은데, 그러한 상황에서 개발자들이 고민을 정제한 사실 상의 표준 설계패턴이다. 디자인 패턴은 객체 지향의 특성 중 상속(extends), 인터페이스(interface/implements), 합성(객체를 속성으로 사용)을 이용한다.
왜 디자인 패턴을 사용해야 할까?
- 개발자 사이에서 서로 이해할 수 있는 용어를 제공하고, 빠르고 정확한 파악이 가능하여 의사소통이 쉽다
- 객체 수준에서의 생각이 아닌 패턴 수준에서 생각할 수 있기에 아키텍쳐를 생각하는 수준이 올라간다
디자인 도구상자 안에 들어가야 할 도구들
1. 객체지향의 기초
- 캡슐화
- 상속
- 추상화
- 다형성
2. 객체지향 원칙
- 바뀌는 부분은 캡슐화 한다
- 상속보다는 구성을 활용한다
- 구현보다는 인터페이스에 맞춰서 프로그래밍한다
- 상호작용하는 객체 사이에서는 가능하면 느슨한 결합을 사용한다. => 유연하고 변화에 강하다
- 클래스는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 한다 => OCP (개방 폐쇄의 원칙)
- 추상화 된 것에 의존하게 만들고구상 클래스에 의존하지 않게 만든다 => 가능하면 모든 것을 추상화하라
- 최소 결합을 해야한다
- 슈퍼클래스에서 모든 것을 불러서 써야한다
- 어떤 클래스가 바뀌는 이유는 하나 뿐이어야 한다 => SRP (단일 책임의 원칙)
3. 디자인 패턴
- 전략 패턴 (Adapter Pattern)
- 옵저버 패턴 (Observer Pattern)
- 데코레이터 패턴 (Decorator Pattern)
- 팩토리 패턴 (Factory Pattern)
- 싱글턴 패턴 (Singleton Pattern)
- 커맨드 패턴 (Command Pattern)
- 어댑터 패턴과 퍼사드 패턴 (Adaptor Pattern & Fecade Pattern)
- 템플릿 메소드 패턴 (Template Method Pattern)
- 반복자 패턴과 컴포지트 패턴 (Iterator Pattern & Composit Pattern)
- 상태 패턴 (State Pattern)
- 프록시 패턴 (Proxy Pattern)
- 복합 패턴 (Composit Pattern)
- 실전 디자인 패턴
- 기타 패턴
참고
헤드퍼스트 디자인패턴
'JAVA > 디자인 패턴' 카테고리의 다른 글
[Proxy Pattern] 프록시 패턴 - 가상 프록시 (0) | 2023.07.03 |
---|---|
[Proxy Pattern] 프록시 패턴 - 원격 프록시 (0) | 2023.07.03 |
[Proxy Pattern] 프록시 패턴이란? (0) | 2023.07.03 |
[Adapter Pattern] 어댑터 패턴이란? (0) | 2023.06.28 |
[Singleton Pattern] 싱글톤 패턴 (0) | 2023.06.27 |