学习PHP设计模式PHP实现桥梁模型(桥)

学习PHP设计模式PHP实现桥梁模型(桥)
首先,桥梁结构图

两。桥梁模型中的主要作用

抽象角色:定义抽象类的接口并保存对已实现对象的引用。

修改抽象(精化抽象)角色:扩展抽象角色,将父类定义修改为抽象。

实施者的角色:定义实现类的接口,并没有给出具体的实现。事实上这个接口不一定是抽象的作用,接口定义相同,两接口可以完全不同。实施的作用应该只给底层的操作,和抽象的作用应该只给一个高水平的操作基于底层操作。

具体的实现(具体实现)的作用:实现角色的接口实现和定义其具体实施。

三、桥梁模型的优越性

1、分离接口及其实现部分

以实现共享的抽象有助于减少编译时间的部分依赖

共享接口和实现有助于分层生成更好的结构化系统

2,提高可扩展性

3,向客户了解细节。

四。网桥模式的应用场景

1,如果系统需要在组件的抽象和具体角色之间增加更多的灵活性,避免两级之间的静态连接

2,设计要求实现角色的任何更改不应影响客户机,或者实现角色的更改对客户端是完全透明的。

三.组件有一个以上的抽象角色和一个实现角色,系统需要动态地耦合在它们之间。

4,虽然在系统中使用继承没有问题,但是抽象角色和具体角色需要独立地改变。设计需求需要独立地管理它们。

五、网桥模式和其他模式

抽象工厂模式(抽象工厂模式):抽象工厂模式可以用来创建配置特定的桥模式。

适配器模式(适配器模式):适配器模式用于帮助不相关的类协同工作,通常在系统设计完成后使用,但在系统开始时使用桥接模式,允许抽象接口和实现部分独立地改变。

状态模式(状态模式):桥接模式描述两级结构之间的关系,状态模式描述对象与状态对象之间的关系,状态模式是桥梁模式退化的特例。

六。桥接模式PHP示例

< PHP

*抽象角色
*抽象给定的定义,并保存对已实现对象的引用。
* /
抽象类抽象{

要实现对象引用。
保护美元;
*操作方法
* /
公共函数操作(){
美元-> -> operationimp(IMP);
}
}
*修改抽象角色
*扩展抽象角色,将父类的定义更改为抽象。
* /
refinedabstraction扩展抽象类{

公共功能(实现__construct美元IMP){
这个$ = IMP;
}
*操作方法在修改抽象角色中的应用
* /
公共函数操作(){
echo'refinedabstraction操作;
美元-> -> operationimp(IMP);
}
}
*实施作用
*给角色的实现提供一个接口,但是没有给出具体的实现。
* /
抽象类的实现者{
*操作方法的实现
* /
摘要公共功能operationimp();
}
*具体角色a
*给出角色接口实现的实现。
* /
类concreteimplementora延伸实现{
*实施操作方法
* /
公共功能operationimp(){
echo'concrete实现操作;
}
}
*具体角色B
*给出角色接口实现的实现。
* /
类concreteimplementorb延伸实现{
*实施操作方法
* /
公共功能operationimp(){
echo'concrete B操作的实现;
}
}
*客户端
* /
客户端类{
*主程序
* /
公共静态函数main(){
$abstraction = new RefinedAbstraction (New ConcreteImplementorA ());
抽象操作>;

抽象=新refinedabstraction美元(新concreteimplementorb());
抽象操作>;
}
}

客户::主();
>
以上是利用php实现的桥梁模式的代码,并对一些装饰图案的概念进行区分,希望能帮助大家学习
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部