디자인 패턴 썸네일형 리스트형 디자인패턴 : Adapter 적응자 디자인패턴 - 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래들이 함께 작동하도록 해준다. 클래스 설명 스테이지에 도형을 그린다고 가정했을 때 동그라미, 세모는 동일한 인터페이스를 갖는데, 네모만 예전에 만들었던 클래스를 사용한다고 하자. 그런데 네모를 draw 해주는 메서드가 동그라미와 세모랑 다른 경우, 네모클래스 내부 메서드를 수정하면 쉽게 해결 되겠지만, 다른 업체에서 제공해주는 API인 경우 수정할 수 없을 때가 발생한다. 이렇듯 개발된 클래스의 인터페이스를 수정할 수 없을 때, 일반적인 프로그래밍에서는 각 도형들의 인터페이스를 맞도록 두가지 방법을 사용해서 해결할 수 있다. 클래스 구조 적응자 패턴과.. 더보기 디자인패턴 : Decorator 장식자 디자인패턴 - 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 클래스 설명 어플리케이션을 제작할 때 가끔 개별적인 객체에 새로운 책임을 추가할 필요가 있다. 이렇게 새로운 서비스의 추가가 필요할 때 이를 해결하기 위해서 일반적인 방법으로 상속을 많이 사용한다. 즉 이미 존재하는 클래스를 상속받고, 또 다른 클래스에서 테두리 속성을 상속받아 이 서브클레스의 인스턴스에 테두리가 있도록 하는 방법이다. 그러나 별로 유용하지 않다. 이는 테두리의 선택이 유연하지 못하고 정적이기 때문이다. 더 나은 방법은 지금 필요한 테두리를 추가하는 다른 객체에다가 해당 구성요소를 둘러싸는 것이다. 이렇게 무엇인가를 감싸.. 더보기 디자인패턴 : Proxy 프록시 디자인패턴 - 다른 객체에 대한 접근을 제어하기 위한 대리자 또는 자리채움자 역할을 하는 객체. 클래스 설정 프록시 패턴을 사용해야 하는 이유는 "왜 객체에 대한 접근을 제어해야하는가?" 라는 물음에서 시작된다. 그 한 가지 이유는 실제 그 객체를 사용할 수 있을 때까지 객체 생성과 초기화에 들어가는 비용 및 시간을 들이지 않겠다는 것이다. 많은 이미지를 불러와야하는 상황에서 우리에게 보여주는 이미지는 한개뿐이기 때문에 모든 이미지를 다 읽어올 필요는 없다. 또한 이미지 참조자가 이미 채워져 있다면, 불러들인 이미지의 복사본만 반환해주므로써 자원을 효율적으로 사용할 수 있다. 클래스 사용방법 var image1: String = new ProxyImage("photo1"); var image2: .. 더보기 디자인패턴 : Strategy 전략 디자인패턴 - 동일 계열의 알고리즘을 정의하고, 각각의 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만듭니다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게한다. 정책(Policy) 패턴이라고도 한다. 클래스 설명 전략패턴은 다음과 같은 상황에서 사용하면 되겠다. 행동들이 조금씩 다를 뿐 개념적으로 관련된 많은 클래스들이 존재할 때, 전략패턴은 많은 행동 중 하나를 가진 클래스를 구현할 수 있는 방법을 제공한다. 알고리즘의 변형이 필요할 때, 이를테면, 기억 공간과 처리 속도 간의 절충에 따라 서로 다른 알고리즘을 정의할 수 있을 것이다. 이러한 변형물들이 알고리즘의 상속 관계로 구현될 때 전략 패턴을 사용할 수 있다. 사용자가 몰라야 하는 데이터를 .. 더보기 GOF 의 디자인패턴 디자인패턴 분류 구조를 설계할 때 관점을 명확히 하라. 1. 생성 패턴( Creational Patterns ) Abstrack Factory( 추상 팩토리 ) - 구체적인 클래스를 지정하지 않고, 관련성을 갖는 객체들의 집합을 생성하거나, 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공하는 패턴. Builder( 빌더 ) - 복합 객체의 생성 과정과 표현 방법을 분리하여, 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴. Factory Method( 팩토리 메서드 ) - 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브클래스 쪽에서 내리는 패턴. 팩토리 메서드 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브클래스로 미룸. Proto.. 더보기 디자인패턴의 개요 디자인패턴 등장배경 절차적인 프로그램 - 데이터를 변수와 함수라는 도구를 이용해서 문제를 해결함, - 문제를 해결하는 키워드인 if문과 swtich 문을 이용해서 흐름을 제어함( 제어문 ) - 실수하기 쉽다는 문제점을 갖고 있다. OOP - 데이터 타입 시스템도입 멤버함수와 멤버 변수를 이용해서 문제를 해결함. - 추상화와 다형성을 이용해서 if 문과 swtich 문을 대신한다. - 유지보수, 재사용성, 신뢰성있는 제품을 확장성있게 만듦. - 모듈 개념( 반제품 즉 완제품을 만들기 전 부품개발 단계 ) 디자인패턴이란 - 데이터 타입 시스템간의 다양한 관계 형성. - 클래스를 어떻게 디자인할 것인가에 대한 방법론. 더보기 이전 1 2 다음