본문 바로가기
728x90

개발/디자인 패턴22

[Java 언어로 배우는 디자인 패턴 입문] 구조를 돌아다니기 14. Chain of Responsibility 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 14. Chain of Responsibility - 책임 떠넘기기 1. 목적 - 클래스들을 사슬처럼 연결해두고 자기가 처리하지 못할 경우 다음 클래스로 떠넘긴다. - 원하는대로 연결하여 동적으로 만들 수 있다. - 각 클래스들은 자신의 일에 집중할 수 있다. - 처리 속도가 느려지는 단점이 있다. - 자기 자신안에 자기와 같은 타입의 인스턴스를 저장한다. 2. 예제 (1) Trouble - 처리가 필요한 문제 public class Trouble { private int number; // 트러블 번호 public Trouble(int number) { // 트러블의 생성 this.number = number; } public int getNum.. 2021. 1. 12.
[Java 언어로 배우는 디자인 패턴 입문] 구조를 돌아다니기 13. Visitor 출처 : 책 - java 언어로 배우는 디자인 패턴 입문 13. Visitor - 데이터 구조를 돌아다니면서 처리하기 1. 목적 - 말 그대로 데이터 구조를 방문(visit)하기 위한 패턴이다. - 재귀가 활용된다. Ex) List = { L1, L2 } 라고하면 List가 visitor를 받아들이면 visitor는 List 내부를 돌며 L1, L2도 자신을 받아들이게 한다. List(visitor) -> L1(visitor), L2(visitor) 2. 예제 - 이전 Composite 패턴 예제가 사용된다. (1) Visitor - 구현을 위한 부모 추상클래스. visit 메소드를 가지고 있다. public abstract class Visitor { public abstract void visit(F.. 2021. 1. 11.
[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.
728x90