반응형
SMALL

전체 글 200

[Design Pattern] 관찰자 패턴(Observer Pattern)

한동안 비가 내려 날씨가 꽤 선선하였는데 오늘은 한 여름이었네요 피서의 계절이라 국내 여행지를 찾아보다가 가볼만한 유명지는 모두 꽉차있는 것을 보면 코로나19도 한 여름의 피서를 막지 못하나 봅니다 무튼 이번 학습 주제는 관찰자(Observer) 패턴입니다 스타크래프트 좀 하신 분들은 아주 익숙한 단어 Observer! 스타에서 옵저버가 하는 일은 맵을 밝혀서 우리에게 적의 위치를 알려주는데 이 패턴도 비슷하게 관찰 대상의 상태가 변화하면 관찰자에게 알려줍니다 이번에도 관찰자 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Subject(관찰 대상자) 관찰이 되는 대상으로 Observer 역할을 등록, 삭제하는 메소드를 가짐 Concrete Subject(구체적인 관찰자) 구체적으로 관찰되는 대상으로 ..

Java 2020.07.15

[Design Pattern] 창구 패턴(Facade Pattern)과 중개자 패턴(Mediator Pattern)

오늘은 서두 없이바로 학습을 진행하겠습니다이번 학습 주제는창구 패턴(Facade Pattern)과중개자 패턴(Mediator)입니다프로그램을 만들다보면많은 클래스들이 생성되고서로 관계를 맺으면서 복잡해지는데상호 관련된 많은 클래스를적절하게 관리해주는 창구를하나 준비하면 좋을 것입니다창구 패턴은복잡하게 얽혀 있는 것을정리해서 높은 레벨의인터페이스를 제공하는 패턴입니다언제나 처럼창구 패턴의 역할들을정리하고 시작하겠습니다역할설명Facade(창구)시스템을 구성하고 있는 많은 역할에 대한 단순한 창구로서 높은 레벨에서 단순한 인터페이스를 시스템 외부에 제공 (시스템을 구성하는 그 밖의 많은 역할들)이 역할들이 Facade 역할을 호출하는 일은 없고 각각의 임무를 수행Client(의뢰인)Facade 역할을 이용하는..

Java 2020.07.13

[Design Pattern] 책임 떠넘기기 패턴(Chain of Responsibility Pattern)

또 한주가 끝나가네요-_- 다시 월요일... 화이팅..!이번 학습 주제는디자인 패턴 중책임 떠넘기기(Chain of Responsibility) 패턴입니다이 패턴은 어떤 요청이 발생했을 때그 요청을 처리할 오브젝트를직접 결정할 수 없을 경우복수의 오브젝트를 사슬(chain) 처럼 연결하고 그 오브젝트를 차례로 돌아다니면서(방문하면서)목적한 오브젝트를 결정하는 방법입니다 그럼 언제나처럼책임 떠넘기기 패턴의역할들을 정리하고 시작하겠습니다역할설명Handler(처리자)요구를 처리하는 인터페이스를 결정Concrete Handler(구체적인 처리자)요구를 처리하는 구체적인 역할Client(요구자)Concrete Handler 역할에 요구이제 구현을 해보겠습니다1. 클래스(Abstract Class) Trouble...

Java 2020.07.12

[Design Pattern] 방문자 패턴(Visitor Pattern)

이번 학습 주제는 방문자 패턴(Visitor Patter)입니다 방문자 패턴은 방문자를 나타내는 클래스를 준비하고 이 클래스에게 처리를 위임함으로써 데이터 구조와 처리를 분리합니다 먼저 방문자 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Visitor(방문자) 데이터 구조의 전체적인 요소마다 visit 메소드 선언 Concrete Visitor(구체적인 방문자) Visitor 역할의 인터페이스를 구현 Element(요소) Visitor 역할이 방문할 곳을 나타내는 역할로 방문자를 받아들이는 accept 메소드 선언 Concrete Element(구체적인 요소) Element 역할의 인터페이스를 구현 Object Structure(오브젝트 구조) Element 역할의 집합을 취급하는 역할 이제 구현을..

Java 2020.07.09

[Design Pattern] 데코레이터 패턴(Decorator Pattern)

날씨는 무더운데 마스크를 끼고 다니려니 얼굴에 뭐가 나는거 같기도... 코로나19에 걸리기 전에 답답해서 죽을 것 같다는... 아무튼 답답함을 이기고 학습을 진행해야겠죠~^^ 오늘의 학습 주제는 데코레이터 패턴(Decorator Pattern)입니다 데코레이터는 "장식을 하는 것"을 의미하는데 뭔가 느낌이 어떤 본판에 살을 붙이는 패턴일 것 같네요~ 언제나 처럼 데코레이터 패턴의 역할들에 대해 정리하고 시작하겠습니다 역할 설명 Component 기능을 추가할 때 핵심이 되는 역할이며 인터페이스만을 결정 Concrete Component Component 역할의 인스턴스를 구현 장식자(Decorator) Component 역할과 동일한 인터페이스를 가지고 Decorator 역할이 장식할 대상이 되는 Com..

Java 2020.07.07

[Design Pattern] 복합체 패턴(Composite Pattern)

어느 덧 7월 2020년도 하반기로 접어들었습니다 남은 반년 화이팅하시고 좋은 성과와 행복이 가득하시길 기원합니다 아무튼 오늘의 학습 주제는 복합체 패턴입니다 컴퓨터 파일 시스템(File System)에는 디렉터리(Directory) 혹은 폴더(Folder)가 있고 그 안에는 다른 디렉터리나 폴더가 있을 수 있고 파일도 있을 수 있습니다 그런데 어떤 디렉터리 안을 조회할 때 이것이 디렉터리 인지 파일인지 모르지만 이 둘을 하나의 디렉터리 엔트리(Entry)로 간주하여 재귀적인 구조를 이루게하면 편리해질 수 있습니다 이번 학습 주제인 복합체 패턴(Composite Pattern)은 이와 같은 모습으로 만들기 위한 패턴입니다 오늘도 복합체 패턴에 등장하는 역할들을 정리하고 시작하겠습니다 역할 설명 Leaf(..

Java 2020.07.05

[Design Pattern] 전략 패턴(Strategy Pattern)

정말 오랜만에 글을 작성하네요-_- 오늘의 학습 주제는 디자인 패턴 중 Strategy 패턴입니다 Stratey는 전략으로 적을 이기기 위한 작전이나 군대를 움직일 때의 방책 등을 의미합니다 프로그래밍에서 전략은 아무래도 알고리즘(Algorithm)이 되겠네요 Strategy 패턴은 이 알고리즘을 구현한 부분을 모두 교환할 수 있는 패턴입니다 먼저 Strategy 패턴의 역할들을 정리하면 다음과 같습니다 역할 설명 Strategy(전략) Strategy는 전략을 이용하기 위한 인터페이스를 결정 Concrete Strategy(구체적인 전략) Strategy의 인터페이스를 실제로 구현 Context(문맥) Context는 Strategy를 이용하는 역할 역시 직접 구현을 해봐야 알 수 있겠죠?^^; 1. ..

Java 2020.06.29

[Design Pattern] 브릿지 패턴(Bridge Pattern)

오늘의 학습 주제는 브릿지(Bridge) 패턴입니다 브릿지 패턴은 '기능의 클래스 계층'과 '구현의 클래스 계층' 사이에 다리를 놓는 디자인 패턴입니다 앞서 학습했던 템플릿 패턴에서 추상 클래스가 일련의 메소드들을 추상 메소드로서 선언함으로써 인터페이스를 규정하고 하위 클래스에서 이것을 구현하는 것을 보았습니다 이것을 '구현의 클래스 계층'이라고 합니다 템플릿 패턴이 궁금하시다면 아래의 링크↓↓ 2020/06/11 - [Java] - [Design Pattern] 템플릿 메소드 패턴(Template Method Pattern) [Design Pattern] 템플릿 메소드 패턴(Template Method Pattern) 오늘 하루도 어느덧 저물어 가네요 날씨가 더워져서 코로나19로 인한 마스크 착용이 더..

Java 2020.06.23

[Design Pattern] 추상적인 공장 패턴(Abstract Factory Pattern)

어느덧 6월도 끝나가네요-_- 올해 여름은 코로나19로 인해서 제대로된 휴가는 물 건너 간거 같고 방콕이나 해야할 것 같습니다ㅜㅜ 아무튼 오늘의 학습 주제는 추상적인 공장 패턴입니다 추상적인 공장 패턴에 등장하는 역할들을 정리해보면 다음과 같습니다 역할 설명 추상적인 제품(Abstract Product) Abstract Factory 역할에 의해 만들어지는 추상적인 부품이나 제품의 인터페이스를 결정 추상적인 공장(Abstract Factory) Abstract Product 역할의 인스턴스를 만들어 내기 위한 인터페이스를 결정 의뢰자(Client) Abstract Factory 역할과 Abstract Product 역할의 인터페이스만을 사용해서 주어진 역할을 실행 구체적인 제품(Concrete Produ..

Java 2020.06.21

[Design Pattern] 빌더 패턴(Builder Pattern)

어느 덧 6월도 중순이 되었습니다 시간이 무섭도록 빠르다고 느껴지는데요 시간이 더 흐르기 전에 하나라도 더 학습해야겠습니다 지난 시간에 이어 디자인 패턴 중 빌더 패턴(Builder Pattern)에 대해 학습하겠습니다 빌더 패턴은 구조를 가진 인스턴스를 쌓아 올린다는 의미인데요 아래는 빌더 패턴을 구성하는 역할들을 정리한 것입니다 역할 설명 건축가(Builder) 인스턴스를 생성하기 위한 인터페이스를 결정 구체적인 건축가(Concrete Builder) Builder 역할의 인터페이스를 구현 감독자(Director) Builder 역할의 인터페이스를 사용해서 인스턴스를 생성 의뢰인(Client) Builder 패턴을 이용하는 역할 매번 하는 소리지만 글만으로 느낌을 알 수 없네요-_- 그럼 역시 구현을..

Java 2020.06.15
반응형
LIST