전체 글
CHAPTER 12.복합 패턴
복합 패턴이란?문제를 해결하기 위해 개발할 때는 효율적인 코드를 작성하기 위해 디자인 패턴을 고민하고 적용합니다.이때 하나의 디자인 패턴만을 사용하지 않고 여러 패턴을 복합적으로 사용하여 문제에 대한 해결을 시도 하는 것을 복합 패턴이라고 합니다. 복합 패턴 적용하기전략 패턴에서 사용했던 오리 예제를 다시 한 번 사용하여 예제를 진행하겠습니다.이전에는 오리 문제를 전략패턴만 사용해서 적용했지만 이번에는 새로운 문제를 예제 중간에 지속적으로 제안하고 문제 해결을 위한 디자인 패턴을 적용하도록 해보겠습니다.public interface Quackable { public void quack(); }오리가 소리를 내는 행동을 정의하는 Quackable 인터페이스입니다.public class MallardDuck..
CHAPTER 11.프록시 패턴
프록시 패턴이란?프록시 패턴의 특정 객체로의 접근을 제어하는 대리인을 제공하는 디자인패턴입니다.프록시 패턴을 사용하면 생성하기 힘든 객체 또는 보안이 중요한 객체와 같이 접근을 제어하는 대리인 객체를 만들 수 있습니다.프록시 패턴을 사용하게 되면 가상 프록시를 사용해서 생성하기 힘든 자원으로의 접근을 제어할 수 있으며 보호 프록시를 사용해서 접근 권한이 필요한 자원의 접근을 제어할 수 있습니다.프록시 패턴의 종류1. 원격 프록시원격 프록시는 원격 개체의 로컬 대변자 역할을 수행하는것을 의미합니다.로컬 대변자란 어떤 메소드를 호출하면 다른 원격 객체에게 그 메소드 호출을 전달해주는 객체를 로컬 대변자라고 합니다.클라이언트 객체는 원격 객체가 가지고 있는 메소드를 호출 하는것처럼 행동합니다. 하지만 실제로로..
CHAPTER 10.상태 패턴
상태 패턴 이해를 위한 간단한 문제 제안어릴때 문방구에서 위와 같은 뽑기 기계를 보신 경험이 있을것입니다.뽑기 기계를 만드는 CEO가 작은 컴퓨터 칩을 넣을건데 작은 칩에서 뽑기 기계가 동작할 수 있는 SW시스템을 구성하고 싶다고 의뢰가 들어왔습니다.CEO는 위의 그림과 같은 플로우로 SW를 만들어달라고 요청했습니다.상태를 확인해보면 아래 처럼 4가지의 상태로 구분할 수 있습니다.public class GumballMachine { final static int SOLD_OUT = 0; //알맹이 품절 final static int NO_QUARTER = 1; //동전미 보유 상태 final static int HAS_QUARTER = 2; //동전 보유 상태 final static int SOLD = ..