본문 바로가기

전체 글

[Template Method design pattern 1] 의도 : 객체의 연산에는 알고리즘의 뼈대만을 정의하고 각 단계에서 수행할 구체적 처리는 서브 클래스 쪽으로 미룹니다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계 처리를 서브 클래스에서 재정의할 수 있게 합니다. [수정 전 코드] [수정 후 코드] virtual ph1과 ph2 함수를 재정의 함으로 인해서 해당하는 객체에 맞게 출력을 해 줄 수 있다. 더보기
[Adapter design pattern] 의도 : 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응 시킵니다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작 시킵니다 [출력결과] [활용성] - 기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 경우 - 아직 예측하지 못한 클래스나 실제 관련되지 않는 클래스들이 기존 클래스를 재사용하고자 하지만, 이미 정 의된 재사용 가능한 클래스가 지금 요청하는 인터페이스를 꼭 정의하고 있지 않을 때, 다시 말해, 이미 만든 것을 재사용하고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을 때 더보기
[Abstract Factory] 추상팩토리 의도 : 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다 shapes[0] = factory->createCurvedInstance(); //shapes[0] = new Circle; shapes[1] = factory->createStraightInstance();//shapes[1] = new Square; shapes[2] = factory->createCurvedInstance();//shapes[2] = new Circle; #define ROBUST 일 경우 출력결과 Ellipse0: draw Rectangle1: draw Ellipse2: draw [활용성] - 객체가 생성되거나 구성 - 표현되는 방식과 무관하게 시스템.. 더보기