본문 바로가기

개발/디자인패턴

구조 개선을 위한 디자인패턴(2) 장세찬, 『GoF 디자인 패턴! 이렇게 활용한다. : C++로 배우는 패턴의 이해와 활용』, 한빛미디어(2004) 책의 내용을 배끼기보단 제가 이해한 내용을 위주로 작성해서 틀린 부분이 있을 수 있습니다! 5. Facade 패턴 프로그램 설계는 보통 class나 객체를 기준으로 많이 표현하죠. 그런데 클래스가 너어어무 많아지면 설계도도 복잡해지고 이해하기 위해 필요한 시간은 더더욱 길어집니다. 그래서 이런 일을 방지하기 위해 서브시스템이라는 개념이 만들어졌습니다. 정해진 일을 하는 서브시스템을 구현하고, 그 서브시스템과는 하나의 인터페이스로만 이어져있는 방식이죠. 이렇게 서브시스템과 클라이언트 부분을 분리해 구현하는 방식을 Facade 패턴이라고 합니다. 책에 나온 Database를 예로 들어보겠습니다...
구조 개선을 위한 디자인패턴 장세찬, 『GoF 디자인 패턴! 이렇게 활용한다. : C++로 배우는 패턴의 이해와 활용』, 한빛미디어(2004) 책의 내용을 배끼기보단 제가 이해한 내용을 위주로 작성해서 틀린 부분이 있을 수 있습니다! 1. Adapter 패턴 Adapter 패턴은 이미 개발된 API를 제 코드의 인터페이스에 맞게 사용하기 위한 패턴입니다. 세상엔 훌륭한 API가 많이 개발되어있죠. 하지만 그 API의 인터페이스(함수 명, 파라미터 등)는 제 코드와 맞지 않는 경우가 많습니다. 이럴 때, API는 사용하되 인터페이스를 맞추기 위한 코드가 바로 Adapter 패턴입니다. 1) Object Adapter 새로 정의한 클래스에 멤버변수로 API에서 사용하는 클래스 객체를 사용하는 방법입니다. 저는 말보단 코드로 설명하는게 ..
객체 생성 관련 디자인패턴 장세찬, 『GoF 디자인 패턴! 이렇게 활용한다. : C++로 배우는 패턴의 이해와 활용』, 한빛미디어(2004) 책의 내용을 배끼기보단 제가 이해한 내용을 위주로 작성해서 틀린 부분이 있을 수 있습니다! 1. Abstract Factory 패턴 책의 시작부터 좀 어려운 내용이 나와서 힘들었던 부분입니다ㅠㅠ 저는 다형성(Polymorphism)을 활용한 디자인 패턴으로 이해했는데요, 추상 클래스를 상속받는 클래스들을 생성하는 역할의 객체 혹은 함수를 두는 개념입니다. 제가 쓰고도 못알아듣겠으니 그림이 필요하겠네요! AbstractProductA, AbstractProductB가 있고, 사용자가 접근할 수 있지만 객체 생성은 AbstractFactory가 합니다. 이렇게 사용했을 때, client는 객체 ..