본문 바로가기
728x90

개발/디자인 패턴22

[Java 언어로 배우는 디자인 패턴 입문] 분리해서 생각하기 10. Strategy 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 10. Strategy - 알고리즘을 모두 바꾸기 1. 목적 - 실행 알고리즘(전략) 클래스를 분리 해 인스턴스를 교체할 수 있도록 한다. > Build 패턴과 비슷하지만 다른점이라고 생각되는 것은 Build 패턴은 인스턴드 생성에 관한 것이라 고정적인 느낌이고 Strategy 패턴은 전략 클래스에 관련된 것이기에 실행 도중에 교체 하기도 하는 동적인 느낌이다. (참고 : 전략 패턴 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)) public static void Main(String[] args) { Customer firstCustomer = new Customer(new NormalStrategy()); // Normal b.. 2021. 1. 10.
[Java 언어로 배우는 디자인 패턴 입문] 분리해서 생각하기 9. Bridge 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 9. Bridge - 기능 계층과 구현 계층 분리하기 1. 목적 - 기능 계층과 구현 계층을 분리 - 장점 : 기능 인터페이스와 구현 인터페이스 나누어져 독립적으로 변경이 가능하다. > 의도 : 일부분을 다른 클래스로 분리하여 기능과 구현으로 분리하고 구현은 구현대로, 기능은 기능대로 갈아낄 수 있도록 유연성을 높인 것이다. > Build 패턴의 좀더 상위 개념인거 같다. 2. 예제 (1) Display - 기능 클래스 public class Display { private DisplayImpl impl; public Display(DisplayImpl impl) { this.impl = impl; } public void open() { impl.. 2021. 1. 10.
[Java 언어로 배우는 디자인 패턴 입문] 인스턴스 만들기 8. Abstract Factory 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 8. Abstract Factory - 복잡한 인스턴스 조립하기 1. 목적 - 부품 인스턴스'들'의 생성을 하위 클래스로 넘긴다. > 즉 부품보다 부품의 조립에 집중할 수 있게된다. - 인스턴스가 1개만 있으면 팩토리 메소드 디자인패턴으로 처리해도 된다. > 예시) 키보드 인터페이스에 LG 키보드 or 삼성 키보드 할당 - 하지만 인스턴스가 여러개인 경우는 인스턴스들을 감싼 팩토리를 만들어 인스턴스들을 한꺼번에 생성한 후 팩토리를 할당한다. > 예시) 키보드 - 삼성 or LG 할당 , 마우스 - 삼성 or LG 할당 (X) 컴퓨터 - 삼성 or LG 컴퓨터 할당(해당 브랜드 마우스, 키보드 생성은 컴퓨터 인스턴스 안에서 처리) (O) - 이렇게 .. 2021. 1. 9.
[Java 언어로 배우는 디자인 패턴 입문] 인스턴스 만들기 7. Builder 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 7. Builder - 복잡한 인스턴스 조립하기 1. 목적 - 생성 기능을 갖는 클래스(Builder)와 동작하는 클래스(Director)를 분리 한다. - 의도 : 동작 클래스에 생성 클래스를 주입해준 후 따로 필요한 인스턴스들을 생성하고 동작클래스를 사용한다. > Builder 패턴은 하나의 군에 대한 생성하는 정보(Builder 클래스)를 감추는 느낌도 있다. (출처: https://hamait.tistory.com/869 [HAMA 블로그]) 2. 예제 (1) Director - 동작 클래스 public class Director { private Builder builder; public Director(Builder builder) { .. 2021. 1. 8.
728x90