728x90 분류 전체보기163 [Java 언어로 배우는 디자인 패턴 입문] 동일시하기 12. Decorator 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 12. Decorator - 장식과 내용물을 동일시하기 1. 목적 - 케이크에 크림을 바르고, 초콜릿을 입혀나가는 것처럼 이전 클래스를 받아 기능을 점차 추가(장식)해 나간다. - 장점 : 내용물을 변경하지 않고 기능을 추가할 수 있다. 장식의 종류가 다른 오브젝트를 유연하게 생성할 수 있다. - 단점 : 작은 클래스가 많아진다. 잘 설명되어 잇는 유튜브를 소개한다. (2) 객체지향 디자인패턴 2 - YouTube 2. 예제 (1) Display - 추상 클래스 public abstract class Display { public abstract int getColumns(); public abstract int getRows(); public a.. 2021. 1. 11. [Java 언어로 배우는 디자인 패턴 입문] 동일시하기 11. Composite 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 11. Composite - 그릇과 내용물을 동일시하기 1. 목적 - 윈도우에서 폴더는 폴더를 넣을수도 있고 파일을 넣을 수도 있다. - Composite 패턴은 그릇(폴더)와 내용물(파일)을 동일시해서 재귀적인 구조를 만들기 위한 패턴 2. 예제 (1) Entry - File과 Directory 클래스의 부모 추상클래스 public abstract class Entry { public abstract String getName(); public abstract int getSize(); public Entry add(Entry entry) throws FileTreatmentException { throw new FileTreatmentExcep.. 2021. 1. 10. [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. 이전 1 ··· 24 25 26 27 28 29 30 ··· 41 다음 728x90