반응형

모든 디자인패턴은 해결하고자 하는 문제가 있음. 각각의 디자인패턴이 탄생하게된 배경과 실제에서 어떻게 쓰이는 지를 아는 것도 중요함.(장점, 어떻게 구성하는지도 중요하지만)

 

생성 패턴 : 객체를 어떻게 생성해야할까.

구조 패턴 : 객체를 어떻게 포함, 사용, 상속, 구현해야할까.

행동 패턴 : 객체의 메서드에 따라서 어떻게 설계해야할까.

 

생성 패턴

Factory Methods

객체 생성은 Factory method에게 맞겨. 너가 전략(매개변수)에 따라 다른 객체를 생성할 수도 있을거 같으니까.

 

Single tone

객체 생성은 단 하나로 만들고 싶으면 이 패턴을 써. 생성자로 호출하는게 아니라 메서드로 객체를 얻어야할거야.

구조 패턴

Adapter

아래의 패턴임.

 

Composite

컴퓨터에 들어가있는 마우스, 키보드, 스피커 이런 부품들을 하나로 추상화해! 그리고 그걸 구성하는 컴퓨터는 그 추상화한 인터페이스를 배열로 가지게 되면, 나중에 유지보수하기가 쉬워질거야.

 

 

Facade

여러 개의 서브클래스들을 캡슐화하여 하나의 인터페이스로 만들자.

(나중에 서브시스템 각각 모두가 변경할 수고를 덜어준다)

 

(한 Facade는 제 3의 API(Third Party API)같은 외부 라이브러리를 추상화 하는데도 사용됨.)

 

 

행위 패턴

Strategy

다양한 전략들을 쓰고 싶으면,  대장 인터페이스를 만들고 그거로 써. 다양한 전략들은 그 대장 인터페이스 상속받고.

 

 

출처 (도움을 주신 분들)

gmlwjd9405.github.io/2018/08/07/factory-method-pattern.html

퍼사이드 패턴 : imasoftwareengineer.tistory.com/29

어댑터 패턴 : jusungpark.tistory.com/22

컴포지트 패턴 : gmlwjd9405.github.io/2018/08/10/composite-pattern.html

jwprogramming.tistory.com/68

반응형