Design Patterns

Design Patterns in Java
https://www.tutorialspoint.com/design_pattern/index.htm

생성
Abstract Factory 부품을 조립해서 제품 생성
Factory Method 하위클래스에서 인스턴스 생성
Builder 조립해서 제품 생성
Prototype 인스턴스를 복제해서 사용
Singleton 하나의 인스턴스만 생성해서 공유사용

구조
Adapter 기존 객체를 원하는 형식으로 바꾸어(adapt) 사용
Bridge 기능 계층과 구현 계층 분리
Composite 그릇과 내용물을 동일시
Decorator 장식과 내용물을 동일시
Facade 단순한 창구 역할
Flyweight 동일한 것 공유하여 사용
Proxy 필요해지면 만드는 구조

행동
Chain of Responsibility 책임을 넘기는 구조
Command 명령을 클래스로 표현하는 구조
Iterator 어떤 목록을 순차적으로 처리하는 구조
Mediator 중개자를 통해 처리하는 구조
Observer 상태 변화를 통보 (이벤트 핸들링 시스템 구현에 사용)
Strategy 동적으로 알고리즘을 교체할 수 있는 구조
Template Method 상위클래스(template)에서 기본적인 알고리즘을 구성한 상태에서, 구체적인 설계를 하위클래스에 위임
Visitor 데이터 구조를 돌아다니며 처리하는 구조 (구조를 수정하지 않고 새로운 동작을 기존 객체 구조에 추가 가능)

 

Model-View-Controller (MVC)
https://www.oracle.com/technetwork/articles/javase/mvc-136693.html
https://zetawiki.com/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC_MVC

Data Access Object (DAO)
https://www.oracle.com/technetwork/java/dataaccessobject-138824.html
https://zetawiki.com/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%A0%91%EA%B7%BC%EA%B0%9D%EC%B2%B4_DAO

Data Transfer Object (DTO)
https://www.oracle.com/technetwork/java/transferobject-139757.html
https://zetawiki.com/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%A0%84%EB%8B%AC%EA%B0%9D%EC%B2%B4_DTO