여러 알고리즘을 하나의 추삭적인 접근점(Interface)을 만들어 접근점에서 서로 교환 가능(Deligate)하도록 하는 패턴사용자(Client)는 자신에게 맞는 전략(Strategy)을 취사선택하여 로직을 수행할 수 있게하는 방법입니다. 게임을 예로들면 캐릭터는 공
외국의 전자제품중에서는 전원 어댑터 규격이 한국과는 달라서 사용하기 곤란한 경우가 있습니다. 이럴 때 변환 어댑터를 이용해서 한국 콘센트에서도 사용할 수 있도록 합니다. 즉, 클라이언트의 요구 타입과 반환 타입이 다를지라도 중간에 어댑터를 둠으로써 적절히 가공하여 둘을
템플릿은 비유하자면 일종의 붕어빵 틀, 타꼬야끼 틀과 비슷하다고 볼 수 있으며,알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴입니다.템플릿 메서드 패턴은 다음과 같은 목적을 가진다. 작업에서 알고리즘의 골격을 정
개요 객체를 만들어내는 부분을 서브 클래스(SUB-CLASS)에 위임하는 패턴 즉 new 키워드를 호출해 객체를 생성하는 역할을 서브 클래스에 위임하는 것입니다. 결국 팩토리 메소드 패턴은 객체를 만들어내는 공장을 만드는 패턴이라 할 수 있습니다. 팩토리 메소드 패턴에서는 인스턴스를 만드는 방법을 상위 클래스 측에서 결정하지만 구체적인 클래스명 까지는 결...
개요 우리는 보통 new 명령어를 통해 인스턴스를 생성해서 사용합니다. new 를통해 IDCard 클래스를 10번 호출하면 10개의 IDCard 인스턴스가 생기는 것이죠. 그런데 클래스의 인스턴스가 단 하나만 필요한 경우가 있습니다. 시스템안에서 하나의 인스턴스만 생성되서 사용되야하는 클래스들인데 예를 들면 회사내의 공공재로 사용하는 프린터나 컴퓨터등이 그...
개요 특정 객체의 인스턴스를 생성할때 우리는 new 명령어를 사용해서 생성합니다. 이처럼 new 를 사용해서 인스턴스를 만들 경우에는 클래스 이름을 반드시 지정해야 합니다. 하지만, 클래스명을 지정하지 않고 인스턴스를 생성할 때도 있습니다. 인스턴스로부터 다른 인스턴스를 만드는 것은 복사기를 사용하는것과 비슷합니다. 원본 서류를 어떻게 만들었는지 몰라도...
개요 도시에 빌딩(building) 을 짓는 것을 build 라 합니다. 빌딩을 짓는 순서는 우선 지반을 다지고 골격을 세우고, 아래에서 위로 조금씩 만들어 갑니다. 이처럼 복잡한 구조물을 한 번에 완성시키는 것은 어렵기 때문에 전체를 구성하는 각 부분을 만들면서 단계를 밟아가며 만들어 나갑니다. Builder 패턴 또한 이처럼 구조를 가진 인스턴스를 쌓...
개요 추상적인 공장(Abstract Factory) 이라는 의미는 언뜻 생각하면 너무 뜬금없는 단어의 조합입니다. 하지만, 조금 더 생각해보면 추상적인 공장에서는 추상적인 제품을 만들 것이라는 말이 될 것이고 그 말은 다시 말해 추상적인 공장은 추상적인 부품을 이용해 추상적인 제품을 만듭니다. 이렇게 말로하면 당췌 무슨말이지 이해하기 힘들지만, 객체지향에...
개요 '기능의 클래스 계층' 과 '구현의 클래스 계층'간에 다리(Bridge)를 놓는 역할을 하는 패턴입니다. 클래스 계층의 두 가지 역할 기능의 클래스 계층 기본적인 사칙연산들을 포함하고 있는 Calculator라는 클래스가 있다고 가정합니다. 그런데 여기에 제곱,거듭제곱, 미분,적분 등 다양한 수학공식기능을 추가하고 싶을 때 우리는 Calculato...
개요 전체와 부분을 동일시해서 재귀적인 구조를 만들기 위한 디자인 패턴 맥에서는 파인더, 윈도우에서는 폴더, 컴퓨터의 파일 시스테에서는 '디렉토리' 라는 것이 있습니다. 이 디릭토리는 개발당시 프로젝트의 패키지(package)와 동일하게 그 안에 또다른 디렉토리가 있을 수도 있고 파일이 있을수도 있습니다. 이처럼 디렉토리 내부에 또 디렉토리가 있는 구조인 ...