Design Pattern (10) 썸네일형 리스트형 11. 방문자 패턴 Visitor Pattern 목차 1. Visitor Pattern 이란? 2. Visitor Pattern 클래스 다이어그램 예시 3. 코드 예시 4. 실행 결과 Visitor Pattern 이란? 데이터 구조와 데이터 처리를 분리해주는 패턴 입니다. 데이터 처리 방식을 기존의 소스 코드 변경 없이 새로운 클래스 추가만으로 확장할 수 있으므로 개방-폐쇠 원칙을 준수할 수 있습니다. 데이터 구조는 Composite Pattern 을 사용해 표현을 사용합니다. Visitor Pattern 클래스 다이어그램 예시 이름 내용 Unit 데이터 구조를 나타내는 클래스 Item 단일 데이터 하나의정수 값을 가진 클래스 ItemList Unit 타입의 객체를 여러개 가질수 있도록 하여 단일데이터나집합데이터를 포함할 수 있도록 하는 클래스 Vis.. 10. 데코레이터 패턴 / Decorator Pattern 목차 1. 데코레이터 패턴이란? 2. 데코레이턴 패턴 구조 예시 3. 코드 예시 4. 결과 5. 참조 데코레이터 패턴이란? Decorator Pattern 에서 Decorator 는 "장식하는 사람" 을 뜻하며, 우리가 크리스마트 트리에 여러가지 물건들을 Decoration 하듯, 기능을 계속해서 추가할 수 있는 패턴을 뜻합니다. Decorator Pattern 을 사용하면 실행 중에 동적으로 변경 또는 확장을 할 수 있게 됩니다. 데코레이터 패턴 구조 예시 이름 내용 Item 내용물(Strings) 과 장식(Decorator )을 다루기 위한 클래스 Strings Class 장식할 대상이 되는 클래스 Decorator Class Strings 를.. 8. 프록시 패턴 / Proxy Pattern 목차 1. 프록시 패턴 / Proxy Pattern 이란? 2. 프록시 패턴 구조 3. 예시 프록시 패턴 / Proxy Pattern 이란? proxy 는 대리인, 대변인 이라는 의미를 가지고 있습니다. 여기서 대리인, 대변인은 누군가를 대신해서 어떠한 역할을 수행하는 존재들 입니다. 프록시 패턴은 이와 마찬가지로 대리인을 통해 실행하도록하는 구조 디자인 패턴입니다. 프록시 패턴 구조 Proxy Pattern Structure 이름 내용 DIsplay 출력 기능의 정의한 인터페이스 ScreenDisplay 문자열을 출력해주는 기능을가진 클래스 BufferDisplay ScreenDIsplay 의 Proxy 클래스 Main 메인 클래스 예제 DIsplay 인터페이스 print 메서드를 정의합니다. publ.. 7. 책임 연쇄 패턴 / Chain Of Responsibility Pattern 목차 1. 책임 연쇄 패턴 이란? 2. 책임 연쇄 패턴 구조 3. 예제 - URL 에서 프로토콜, 도메인, 포트를 분리하기 책임 연쇄 패턴 이란? 책임 이란 무언가를 처리하는 기능을 가진 클래스 여러 개의 책임들을 동적으로 연결해서 순차적으로 실행하는 행동 디자인 패턴입니다. 기능을 클래스 별로 분리하여 구현하도록 유도하므로 클래스의 코드가 최적화 된다는 장점이 있습니다. 책임 연쇄 패턴 구조 이름 내용 Handler 실행을 담당해줄 추상클래스 ProtocolHandler 프로토콜을 찾아줄 클래스 DomainHandler 도메인을 찾아줄 클래스 PortHandler 포트를 찾아줄 클래스 Main 메인 클래스 예제 - URL 에서 프로토콜, 도메인, 포트를 분리하기 Handler 추상클래스 Handler .. 6. 브리지 패턴 (Bridge Pattern) 목차 1. 브리지 패턴 (Bridge Pattern) 이란? 2. 브리지 패턴 구조 3. 예제 브리지 패턴 (Bridge Pattern)이란? 기능 계층과 구현 계층의 분리로 시스템의 확장성과 유지보수성을 높이는 패턴 입니다. 기능 계층과 구현 계층을 연결한다는 뜻으로 브리지 패턴이라고 불립니다. 기존 시스템에 새로운 기능을 추가해도 기능계층을 통해 기존에 작성된 작성된 코드의 변경을 최소화 또한 기존의 기능에 대해서도 구현계층을 통해 확장을 용이하게 해줍니다. 브리지 패턴 구조 (Bridge Pattern Structure) 이름 내용 DIsplay 초안 내용을 출력을 도와줄 인터페이스 Draft 초안을 적을 클래스 Publication 추가 요청에 관련된 초안 클래스 SimpleDisplay 간단하게.. 5. 메멘토 패턴 (Memento Pattern) 목차 1. 메멘토 패턴(Memento Pattern) 이란? 2. 메멘토 패턴 구조 (Memento Pattern Structure) 3. 예제 메멘토 패턴 (Memento Pattern) 이란? Memento 는 "추억" 또는 "과거의 기억" 이라는 단어를 뜻합니다. 단어의 의미에 알맞게 메멘토 패턴은 객체의 상태에 대한 기억을 저장해 두었다가 필요할때 기억해둔 상태로 객체를 되돌릴 수 있는 행동 디자인 패턴 입니다. 이 기억은 다른 객체에서도 읽기 전용으로 접근할 수 있으며, 해당 기억은 오직 해당 객체만 할 수 있는 특징이 있습니다. 메멘토 패턴 구조 (Memento Pattern Structure) 이름 내용 Walker 걷기를 수행할 클래스 Memento 현재 위치를 기억하는 내부 클래스 Mai.. 4. 컴포지트 패턴 (Composite Pattern) 목차 1. 컴포지트 패턴 (Composite Pattern) 이란? 2. 컴포지트 패턴 구조 3. 예제 컴포지트 패턴 (Composite Pattern) 이란? 컴포지트 패턴의 예시로 폴더와 파일이 있습니다. 폴더와 파일은 서로 다르지만 모두 폴더안에 넣을 수 있다는 공통점이 있습니다. 이러한 공통점을 이용하여 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 할 수 있게 도와주는 패턴이 컴포지트 패턴입니다. 컴포지트 패턴 구조 이름 내용 Item File 과 Folder 를 동일시하는 추상 클래스 Folder 폴더를 나타내는 클래스 File 파일을 나타내는 클래스 Main 메인 클래스 예제 Item 추상클래스 Item 추상클래스는 기본적인 것만제공하고 나머지는 Folder 와 File 클래스 에서.. 3. 어댑터 패턴 (Adapter Pattern) 목차 1. 어댑터 패턴 (Adepter Pattern)이란? 2. 어댑터 패턴 구조 3. 예제 어댑터 패턴 (Adepter Pattern)이란? 220v 에서 작동하는 가전제품을 110v 에서 작동하도록 하려면 어떻게 해야할까요? 바로 110v 어댑터를 사용하는 것입니다. 이처럼 어댑터 패턴은 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 해주어 기존의 코드를 수정하지 않고 재사용 할 수 있도록 도와주는 구조적 디자인 패턴입니다. 어댑터 패턴 구조 이름 내용 Animal 새롭게 만들어진 추상클래스 Dog Animal을 상속받은 강아지 클래스 Cat Animal을 상속받은 고양이 클래스 Tiger 기존 코드 TigerAdapter Animal과 연결을 도와줄 Adapter 클래스 Animal .. 이전 1 2 다음