Composite Parttern이란?컴파지트 패턴은 집합체와 집합체를 구성하는 단일체를 같은 개념으로 처리하는 구조적 디자인 패턴이다. 이 패턴을 사용하면 개별 객체와 객체 그룹을 동일하게 다룰 수 있어서객체를 트리 구조로 구성하여 부분-전체 계층을 표현할 수 있다. 왜 동일한 개념으로 처리하면 트리 구조로 구성할 수 있느냐?가 궁금하다면아래의 컴포지트 패턴의 UML 다이어그램을 보면 알 수 있다. Unit: Folder와 File의 공통의 type == compositeFile: 단일체Folder: 집합체 Folder안에 File도 들어가지만 또다른 sub Folder가 들어갈 수 있다.이때 여러번 Folder안에 Folder와 File을 넣는 과정에서우리는 맨 마지막 폴더가 tree 구조의..
Facade Parttern이란?복잡한 시스템이나 서브시스템을 단순하게 사용할 수 있는 인터페이스를 제공하는 구조적 디자인 패턴이다.Façade는 프랑스어로 정면 외벽을 의미한다. 즉, 복잡한 내부 구조를 벽에 숨겨놓고 다 알지 않아도단순하게 객체(인터페이스) 하나만으로도 시스템을 사용할 수 있게끔 도와주는 디자인 패턴이다. Facade Pattern을 쓰는 이유(==기존 개발 형태에 대한 문제점)?위키에도 올라와있는 예제(사용자가 퍼사드(컴퓨터)를 통해 컴퓨터 내부의 부품(CPU, HDD) 등을 접근한다는 내용의 추상적인 예제)를퍼사드 패턴을 적용하기 전, 기존 개발 코드로 작성하면 어떨까? 다음과 같을 것이다. 서브 시스템을 구성하는 클래스들public class CPU { public void..
Decorator Parttern이란?특정 클래스들에 객체들이 할 수 있는 기능들이 있을 때, 사용자가 원하는대로 동적으로 조합할 수 있게 해주는 구조적 디자인 패턴이다. 객체에 기능들을 장식처럼 계속 붙일 수 있는 패턴이다.Decorator Pattern을 쓰는 이유(==기존 개발 형태에 대한 문제점)?로그를 남기는 로그시스템을 다음과 같이 하나의 클래스에 구현했다고 생각해보자.public class Logger { public void log(String message) { // 기본 로그 기능 System.out.println("Logging: " + message); // 이메일 전송 sendEmail(message); // ..