
Facade 패턴

- 데이터 연결관계를 Facade에 숨기고 호출해서 사용하는 방식 (사용자는 복잡한 연결과정을 알 필요가 없음)
Template-method 패턴

- 다양화된 방식을 각각 자식 클래스에서 오버라이딩하는 방식으로 구현하는 방식
Decorator 패턴
특정 클래스의 객체들이 할 수 있는 일을 여러가지 두고 각 객체마다 사용자가 원하는대로 골라시키거나 기능들을 필요에 따라 장착할 수 있도록 할 때 사용
Factory-method 패턴

- 객체를 생성하는 코드들이 커질수록 코드 변경의 부담이 커짐
-> Factory클래스의 내부만 변경시키면 되기 때문에 코드 변경의 부담이 줄어듬
+++++++++++
Abstract-factory-method 패턴

- Factory-method 패턴에서 한 단계 더 추상화가 입혀진 패턴
-> 기본 팩토리를 추상 클래스나 인터페이스로 하나 만들고 이를 상속받는 팩토리를 테마별로 둠

- 어떤 클래스의 객체에서 특정 이벤트가 발생할 때 마다 연결된 다른 클래스에 알려야 하는 경우 중재자 역할을 하는 클래스에 전담시킴(mediator)
Composite 패턴

- 포함 하는 것들과 포함되는 것들이 같은 방식으로 다뤄질 수 있도록 해야 할 때 사용 (폴더 안에 여러 파일 들이 들어가 있는 것과 같다고 생각하자)