정의복합 객체 그룹(전체)과 단일 객체를 동일하게 취급하거나 다룰 수 있게 해주는 방식으로, 재귀적 특성을 띄며 트리(tree) 구조에 가까운 패턴이다.복합체 패턴의 구조는 크게 3가지로 분류된다.1\. Base Component클라이언트가 Composition(복합체
Adapter 패턴 정의 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 변환시키는 패턴입니다. 즉, 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작시킵니다. 구현 방법 Class Adapter : 자바의 상속 (Ineheritance)을 이용
정의Original 객체를 새로운 객체에 복사하여 필요에 따라 수정하는 메커니즘을 제공합니다.객체를 생성하는데 비용(시간과 자원)이 많이 들고, 비슷한 객체가 이미 있는 경우에 사용됩니다.Java 의 Cloneable을 구현하여, clone() 메소드를 정의 후 사용합
정의복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리합니다.이로 인해 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴입니다.빌더 패턴은 많은 Optional한 멤버 변수(혹은 파라미터)나 지속성 없는
객체 지향 디자인 패턴의 기본 원칙은 확장에 있어서는 열려 있어야 하며, 수정에 있어서는 닫혀 있어야 한다는 것이다. (OCP, Open Closed Principle)여기서 수정에 있어서 닫혀 있어야 한다는 말에 주목해보자.코드를 수정하지 않아도 모듈의 기능을 확장하
정의애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴즉, 하나의 인스턴스만 생성하여 사용하는 디자인 패턴이다.클래스의 생성자가 여러번 호출되어도, 실제로 생성되는 객체는 하나이며 최초로
개발을 하다보면 이전에 사용했던 코드와 유사한 기능을 구현할때 이전의 코드를 들여다보는 경험을 종종 하게 됩니다.이때 이전의 코드를 그대로 복사하여 사용하기도 하고, 변형해서 쓰기도 하고, 혹은 상황에 맞지 않다고 판단하여 다른 방향의 구현을 고민하기도 합니다.디자인