공대베짱이

Interpreter Pattern

1. Interpreter 패턴이란 디자인 패턴의 목적 중 하나는 클래스의 재이용성을 높이기 위해서이다. 재이용성이란 한 번 작성한 클래스를 별로 수정하지 않고(가능하면 전혀 수정하지 않고) 몇 번이고 사용할 수 있도록 하는 것이다. Interpreter 패턴에서는 프로그램이 해결하려는 문제를 간단한 ‘미니 언어’로 표현한다. 구체적인 문제를 미니 ...

Command Pattern

1. Command 패턴이란 클래스가 일을 실행할 때에는 자신의 클래스나 다른 클래스의 메소드를 호출한다. 메소드를 호출한 결과는 오브젝트(객체)의 상태에 반영되지만, 일의 이력은 어디에도 남지 않는다. 이때 ‘이 일을 실행하시오’라는 ‘명령’을 표현하는 클래스가 있으면 편리하다. 실행하고 싶은 일을 ‘메소드 호출’하는 동적인 처리로 표현하는 것이 ...

Proxy Pattern

1. Proxy 패턴이란 proxy는 ‘대리인’이라는 의미이다. 대리인이란 일을 해야할 본일을 대신(대리)하는 사람이다. 본인이 아니라도 가능한 일을 맡기기 위해서 대리인을 세운다. 대리인은 어디까지나 대리에 지나지 않기 때문에 할 수 있는 일에는 한계가 있다. 대리인이 할 수 있는 범위를 넘는 일이 발생하면, 대리인은 본인한테 와서 상담을 한다. ...

Flyweight Pattern

1. Flyweight 패턴이란 Flyweight 디자인 패턴은 오브젝트(객체)를 ‘가볍게’하기 위한 것이다. 오브젝트는 컴퓨터 안에서 가상적으로 존재하는 것이기 때문에 ‘무겁다’ 혹은 ‘가볍다’라고 표현해도 실제의 무게를 나타내는 것은 아니다. 여기에서 말하는 무게는 ‘메모리의 사용량’을 의미한다. 많은 메모리를 사요하는 오브젝트를 ‘무겁다’고 표현...

State Pattern

1. State 패턴이란 오브젝트 지향 프로그래밍에서는 프로그램 할 대상을 ‘클래스’로 표현한다. 어떤 것을 클래스로 표현할지는 설계를 하는 사람이 생각해야 한다. 클래스에 대응하는 구체적인 ‘사물’이 현실에서 존재하는 경우도 있고 존재하지 않는 경우도 있다. 경우에 따라서는 ‘이런 것이 클래스가 될 수 있나?’하고 놀랄 정도의 것을 클래스로 하는 경...