学习php设计模式php实现桥接模式
一、桥梁模式结构图。
第二,桥模式中的主要角色:抽象角色:定义抽象类的接口,保存对已实现对象的引用。细化抽象角色:扩展抽象角色,更改和修改父类对抽象的定义。实现者角色:定义实现类的接口,不给出具体实现。该接口不一定与抽象角色的接口定义相同。事实上,这两个界面可以完全不同。实现的角色只给出底层操作,抽象的角色只给出基于底层操作的高层操作。具体实现者角色:实现实现角色的接口并定义其具体实现。3.桥接模式1的优点。分离接口及其实现部分。共享抽象和实现者将有助于减少对实现部分编译时间的依赖。共享接口和实现将有助于分层,从而产生更好的结构化系统2。提高可扩展性。实施细节对客户来说是透明的。四.桥接模式1的应用场景。如果系统需要在组件的抽象和具体角色之间增加更多的灵活性,请避免在这两个级别之间建立静态连接。2.设计要求实现角色的任何改变都不应该影响客户端,或者实现角色的改变对客户端是完全透明的。3.一个组件有多个抽象角色和实现角色,系统需要它们之间的动态耦合。4.虽然在系统中使用继承没有问题,因为抽象角色和具体角色需要独立变化,设计需求需要独立管理。五、桥接模式和其他模式抽象工厂:抽象工厂可以用来创建和配置特定的桥接模式。适配器模式:适配器模式用于帮助不相关的类一起工作。通常在系统设计完成后使用。但是,在系统的开始使用了桥接模式,这使得抽象接口和实现部分可以独立更改。状态模式:桥接模式描述两个层次结构之间的关系,而状态模式描述一个对象和一个状态对象之间的关系。模式是桥模式退化的一种特殊情况。不及物动词桥接模式PHP示例。
?php/** *抽象化角色* 抽象化给出的定义,并保存一个对实现化对象的引用*/抽象类抽象{ /*对实现化对象的引用*/protected $ imp;/** * 某操作方法*/public function operation(){ $ this-imp-operation imp();}} /** * 修正抽象化角色* 扩展抽象化角色,改变和修正父类对抽象化的定义*/class refined base扩展了抽象{ public function _ _ construct(impler $ imp){ $ this-imp=$ imp;} /** * 操作方法在修正抽象化角色中的实现*/public function operation(){ echo ' RefinedAbstraction operation ';$ this-imp-operation imp();}} /** * 实现化角色* 给出实现化角色的接口,但不给出具体的实现*/抽象类实现者{ /** *操作方法的实现化声明*/抽象公共函数imp()操作;} /** * 具体化角色A *给出实现化角色接口的具体实现*/class混凝土实现a扩展了实施者{ /** *操作方法的实现化实现*/公共函数操作imp(){ echo '混凝土实现者操作br/';}} /** * 具体化角色B *给出实现化角色接口的具体实现*/class混凝土实现器扩展了实现器{ /** *操作方法的实现化实现*/public函数imp()操作{ echo '混凝土冲击器B操作br/';}} /** * 客户端*/class Client { /** *主程序*/public static function main(){ $ abstraction=new RefinedAbstraction(new concrete impleora());$ abstraction-operation();$ abstraction=新的精炼抽象(新的具体实现者());$ abstraction-operation();} }客户端:3360 main();以上就是使用服务器端编程语言(专业超文本预处理器的缩写)实现桥梁模式的代码,还有一些关于装饰模式的概念区分,希望对大家的学习有所帮助。
版权声明:学习php设计模式php实现桥接模式是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。