Decorator, Adapter, Facade 패턴은 서로 비슷한 점을 가진 디자인 패턴입니다.세 패턴 모두 새로운 클래스로 기존의 클래스를 감싸는 방식이라는 공통점이 있습니다.기존 코드를 감싸는 방식은 상속이 아닌 구성(프로퍼티로 기존의 클래스의 인스턴스를 가지고 있음)을 사용합니다. 서로 비슷한 이 패턴들의 차이점을 정리해 보도록 하겠습니다. - Decorator 패턴기존 클래스를 감싸지만, 인터페이스는 그대로 유지하면서 새로운 기능을 추가하는 방식입니다.http://haloper.tistory.com/11 - Adapter 패턴기존 클래스의 인터페이스를 새로운 인터페이스로 변경할 때 사용합니다.기존의 개발된 클래스를 다른 인터페이스를 사용하는 클라이언트에서 사용 가능하도록중간에서 인터페이스를 변환..
커맨드 패턴의 주요 목적은 작업을 요청하는 쪽과 작업을 처리하는 쪽을 분리하여서로 의존관계가 없도록 하는 것 입니다. (서로 상대방의 존재 여부를 알지도, 알 필요도 없습니다.) 또한, 커맨드 패턴 적용 시 연속된 작업의 이력 관리와 작업 취소 로직을 쉽게 적용할 수 있습니다. 샘플 코드를 작성하기에 앞서 기본적인 용어를 정리하도록 하겠습니다. Invoker : 작업을 요청하는 객체 Receiver : 작업을 처리하는 객체 Command : 작업 클래스들이 구현해야 하는 인터페이스 간단하게 원과 네모를 그리는 로직으로 샘플을 구현해 보겠습니다. x,y 좌표를 가진 원과 네모를 그리거나 지우는 작업을 합니다. 작업 이력을 stack에 넣어 보관하고, 필요시 undo 할 수도 있습니다. 우선 Command ..
싱글턴 패턴은 클래스의 인스턴스 갯수를단 하나만 생성 가능 하도록 제한하는 방법입니다. 중요한 상태값 정보를 가지고 있는 클래스일 경우인스턴스가 여러 개 생성되어다양한 상태값을 갖게 되면프로그램에 큰 문제를 발생 시킬 수 있어싱글턴 클래스 사용이 필요합니다.또는 불필요하게 인스턴스의 수가 많이 생성되어메모리를 쓸데 없이 잡아먹고 있는 것이 싫은 때에도싱글턴 클래스를 사용할 수 있습니다. 싱글턴 패턴의 구현 방법은 다음과 같습니다.기본적으로 default 생성자를 private으로 선언하여new 키워드를 이용한 객체 생성을 막습니다.그리고 public static method인 getInstance를 만들고해당 method만 이용하여 인스턴스를 전달 받도록 합니다.getInstance method 안에서 ..