当DP遇见Py(八) -- 外观模式

目录
  1. 定义:
  2. 类图:
  3. 类型:结构型
    1. C++ 实现
    2. Python 实现
    3. 执行结果:
  4. Tips:

定义:

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

类图:

类型:结构型

C++ 实现

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
#include <iostream>
#include <string>
using namespace std;

class Sub1
{
public:
void f1()
{

cout<<"子系统的方法 1"<<endl;
}
};

class Sub2
{
public:
void f2()
{

cout<<"子系统的方法 2"<<endl;
}
};

class Sub3
{
public:
void f3()
{

cout<<"子系统的方法 3"<<endl;
}
};

class Facade
{
private:
Sub1 *s1;
Sub2 *s2;
Sub3 *s3;
public:
Facade()
{
s1=new Sub1();
s2=new Sub2();
s3=new Sub3();
}

void method()
{

s1->f1();
s2->f2();
s3->f3();
}
};

int main()
{

Facade *f=new Facade();
f->method();s
return 0;
}

Python 实现

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
# -*- coding=utf-8 -*-

class Sub1:
def f1(self):
print u"子系统的方法 1"

class Sub2:
def f2(self):
print u"子系统的方法 2"

class Sub3:
def f3(self):
print u"子系统的方法 3"

class Facade:
def __init__(self):
self.s1 = Sub1()
self.s2 = Sub2()
self.s3 = Sub3()

def method(self):
self.s1.f1()
self.s2.f2()
self.s3.f3()

if __name__ == "__main__":
facade = Facade()
facade.method()

执行结果:

1
2
3
子系统的方法 1
子系统的方法 2
子系统的方法 3

Tips:

外观模式Python实现没有什么特点,在这就不在赘述了。


评论