Gof Design Pattern
파사드 패턴 (Facade Pattern)
copynull
2014. 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;
}
|
예제 결과)
헤드 퍼스트 디자인 패턴:14가지 GoF 필살 패턴! - 프로그래밍 언어 | 쿠팡
쿠팡에서 헤드 퍼스트 디자인 패턴:14가지 GoF 필살 패턴! 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."