파사드 패턴 (Facade Pattern)
Gof Design Pattern2014. 1. 30. 07:27
Facade Pattern - 파사드 패턴
- 통일된 인터페이스를 통해 복잡한 서브시스템들을 간단히 사용하도록 만든 패턴이다.
- 패턴이라고도 말하기 힘들정도로 간단하기 때문에 초보자들도 쉽게 이해 가능하다.
샘플 코드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | class SubClassA { public: void operation() { cout << "SubClass A" << endl; } }; class SubClassB { public: void operation() { cout << "SubClass B" << endl; } }; class SubClassC { public: void operation() { cout << "SubClass C" << endl; } }; class Facade { public: Facade(SubClassA *a, SubClassB *b, SubClassC* c) : mSubA(a), mSubB(b), mSubC(c) {} public: void operation() { mSubA->operation(); mSubB->operation(); mSubC->operation(); } private: SubClassA* mSubA; SubClassB* mSubB; SubClassC* mSubC; }; //------------------------------------------------------------------ // Main int _tmain(int argc, _TCHAR* argv[]) { SubClassA subA; SubClassB subB; SubClassC subC; Facade facade(&subA, &subB, &subC); facade.operation(); getchar(); return 0; } |
예제를 통한 파사드 패턴(Facade Pattern) 알아보기
예제) 컴퓨터 부팅 예제
컴퓨터 부팅 예제 클래스 입니다. 컴퓨터 클래스에서 각 부품들을 멤버변수로 가지고 컴퓨터를 부팅하는 과정을 출력하는 예제이다.
예제 코드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | class BIOS { public: void operation() { cout << "\t-BIOS Loading..." << endl; } }; class CPU { public: void operation() { cout << "\t-CPU Processing..." << endl; } }; class MEMORY { public: void operation() { cout << "\t-Memory Loading..." << endl; } }; class HDD { public: void operation() { cout << "\t-Hard Disk Loading..." << endl; } }; class Computer { public: Computer(BIOS *a, CPU *b, MEMORY* c, HDD* d) : mBios(a), mCpu(b), mMemory(c), mHdd(d) {} public: void Booting() { cout << "+Computer Booting Start" << endl; mBios->operation(); mCpu->operation(); mMemory->operation(); mHdd->operation(); cout << "+Computer Booting Complete" << endl; } private: BIOS* mBios; CPU* mCpu; MEMORY* mMemory; HDD* mHdd; }; //------------------------------------------------------------------ // Main int _tmain(int argc, _TCHAR* argv[]) { BIOS bios; CPU cpu; MEMORY memory; HDD hdd; Computer mComputer(&bios, &cpu, &memory, &hdd); mComputer.Booting(); getchar(); return 0; } |
예제 결과)
'Gof Design Pattern' 카테고리의 다른 글
옵저버 패턴 (Observer Pattern) (0) | 2014.02.01 |
---|---|
메멘토 패턴 (Memento Pattern) (0) | 2014.01.30 |
플라이웨이트 패턴 (Flyweight Pattern) (1) | 2014.01.30 |
데코레이터 패턴 (Decorator Pattern) (0) | 2014.01.29 |
컴포지트 패턴 (Composite Pattern) (2) | 2014.01.28 |