디자인 패턴은 각각의 쓰임새를 잘 이해해놓고 비슷한 상황이 나오면 한번씩 써먹어 보도록 하자!
생성 디자인 패턴
부모 클래스에서 객체를 생성하는 인터페이스를 제공한다.
장점
적용 가능한 상황
생성 디자인 패턴 - Factory Method에서 확장된 느낌인것 같다(내생각엔?)
구체적인 자식 클래스 명시 없이 연관된 객체 그룹을 생성하게 한다. 사실 와닿진 않는다. 나중에 예시를 찾아봐야겠다.
장점
단점
적용 가능한 상황
생성 디자인 패턴
클래스가 하나의 인스턴스만 갖게 함으로써 여러가지 장점을 가질 수 있게된다
하지만 순수 자바로 구현하면 단점이 많다. But 스프링에서 알아서 제공해주므로 고맙게 사용하자!
장단점은 생략!
싱글톤 구현 방식은 Bill Pugh 방식이 유명하다고 한다.(Thread-safe 하다고 한다)
자세한 것은 여기 참고!
Okky Bill Bugh
추가로 enum으로도 싱글톤을 만들 수 있으니 고려하자!
생성 디자인 패턴
선택적 매개변수가 많은 경우! 아주 유용하게 사용할 수 있다.
또한 빌더패턴은 생성할 때 가독성이 좋아서 좋다. (+ 메서드 체이닝 방식)
쉬워서 설명 패스!
행위 디자인 패턴
행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴
전략(비즈니스 로직, 알고리즘)을 쉽게 바꿀 수 있도록 해주는 디자인 패턴
장점
단잠
구조 디자인 패턴
실제 기능을 수행하는 객체(Real Object) 대신 가상의 객체(Proxy Object)를 사용해 로직의 흐름을 제어하는 디자인 패턴
프록시 패턴을 적용 가능한 부분
회고 - 프록시 패턴은 타켓 객체에 접근에 대해 사전처리와 사후처리가 필요할 때 사용하는 게 좋겠다. 나중에 써먹어봐야지!
Factory Method, Abstract Factory 패턴 정리
Singleton 패턴 정리
Builder 패턴 정리
Strategy 패턴 정리
Proxy 패턴 정리