择要:本文用一个实例场景形貌Gof 23计划模式中的门面模式,并用PHP步伐代码给予实现,同时也给出实当代码的UML模子。
关键字:Gof 23 计划模式 门面模式 PHP
Facade Pattern basedon PHP
Abstract:This paper gives a scene example to describe theuse of Facade of Pattern Gof 23 Design Pattern, and achieves the example by PHP,at the same time, gives the UML model of realization of the example.
Key word: Gof 23 Design Pattern Facade Pattern PHP
1. 尺度界说
门面(Facade)模式尺度界说:为子体系中的一组接口提供一个同等的界面,Facade模式界说了一个高层接口,这个接口使得这一子体系更加轻易利用。
2. 分析和阐明
门面(Facade)模式也叫表面模式,属于布局型计划模式。外部与一个子体系的通讯必须通过一个同一的门面临象举行。门面模式提供一个高条理的接口,使得子体系更易于利用。每一个子体系只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个体系可以有多个门面类。
Facade布局如图1所示。其脚色包罗门面(Facade)脚色和子体系(Subsystem)脚色。
图1 门面模式布局
门面(Facade)脚色:客户端可以调用这个脚色的方法。此脚色知晓相干的(一个大概多个)子体系的功能和责任。在正常环境下,本脚色会将全部从客户端发来的哀求委派到相应的子体系去。
子体系(Subsystem)脚色:可以同时有一个大概多个子体系。每一个子体系都不是一个单独的类,而是一个类的聚集。每一个子体系都可以被客户端直接调用,大概被门面脚色调用。子体系并不知道门面的存在,对于子体系而言,门面仅仅是别的一个客户端而已。
3 应用场景举例
好比公司总有前台,来访的职员重要是做这几类工作,一类是过来工作,一类是访客,一类是邮差送东西,另有就是向导观察等。但是都是通过前台来实现。
在这里可以把Facade类明白为门面(Facade)脚色。DoWork类,Inspection类,Post类和Visit类是子体系(Subsystem)脚色。其布局类图如图2所示。Facade类聚合DoWork类,Inspection类,Post类和Visit类等四个类。
图2 门面模式类图
3.PHP的实现步伐代码
PHP步伐实现重要包罗Facade类,DoWork类,Inspection类,Post类和Visit类等5个类。下面分别列出这5个类的步伐代码,末了列出测试代码并表现输出效果。
步伐代码清单01
facade 计划模式(对象方式)
| 门面模式测试类输出效果如下所示:
facade计划模式(对象方式).
——————步伐开始运行.————————
访客:登记身份证。
邮递员:登记收发物品。
向导观察:端茶倒水。
员工:打卡考勤。
没有对应事项,不能工作。
——————步伐运行竣事.————————
|
参考文献
[1] E.Gamma, R.Helm, R.Johnson, andVlissides. Design Patterns Elements of Reusable Object Oriented Software. Addison-Wesley,1995
[2] E.Gamma, R.Helm, R.Johnson, andVlissides.著,李英军等译,计划模式:可复用面向对象软件的底子,北京:机器工业出书社.2000.9.
[3] 嫡科技,PHP从入门到醒目(第3版),北京:清华大学出书社.2012.5.
[4] [美] Larry Ullman 著,季国飞 朱佩德 译,深入明白PHP:高级本领、面向对象与焦点技能(原书第3版),北京:机器工业出书社.2014.1.
[5] PHP官方网站:http://php.net/.
[6] PHP教程http://www.runoob.com/php/php-oop.html.
[7] PHP面向对象教程http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/09/10/1823042.html
|