登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 232|回复: 0

10-门面模式PHP实现

[复制链接]

199

主题

0

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
22
发表于 2018-1-20 01:23:41 | 显示全部楼层 |阅读模式 来自 福建福州
择要:本文用一个实例场景形貌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)脚色。


fEX4er6zXNB43KYb.jpg

1 门面模式布局

    门面(Facade)脚色:客户端可以调用这个脚色的方法。此脚色知晓相干的(一个大概多个)子体系的功能和责任。在正常环境下,本脚色会将全部从客户端发来的哀求委派到相应的子体系去。
    子体系(Subsystem)脚色:可以同时有一个大概多个子体系。每一个子体系都不是一个单独的类,而是一个类的聚集。每一个子体系都可以被客户端直接调用,大概被门面脚色调用。子体系并不知道门面的存在,对于子体系而言,门面仅仅是别的一个客户端而已。
3 应用场景举例
好比公司总有前台,来访的职员重要是做这几类工作,一类是过来工作,一类是访客,一类是邮差送东西,另有就是向导观察等。但是都是通过前台来实现。
在这里可以把Facade类明白为门面(Facade)脚色。DoWork类,Inspection类,Post类和Visit类是子体系(Subsystem)脚色。其布局类图如图2所示。Facade类聚合DoWork类,Inspection类,Post类和Visit类等四个类。
co3AF318MzOfa5x1.jpg

2 门面模式类图

 
3PHP的实现步伐代码
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.著,李英军等译,计划模式:可复用面向对象软件的底子,北京:机器工业出书社.20009
[3] 嫡科技,PHP从入门到醒目(第3版),北京:清华大学出书社.20125
[4] [] Larry Ullman 著,季国飞 朱佩德 译,深入明白PHP:高级本领、面向对象与焦点技能(原书第3版),北京:机器工业出书社.20141
[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
 
Wr72U7r3VU8ULz2z.jpg




上一篇:7天Python入门教程和干货学习资源分享,看你知道的有哪些? ...
下一篇:SegmentFault 技能周刊 Vol.41 - 深入学习区块链
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-7-3 03:30 , Processed in 0.058159 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表