PHP桥连模式如何改写为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3039个文字,预计阅读时间需要13分钟。
本例简述了PHP设计模式:桥接模式。
分享给家人供参考,具体如下:
1. 概述在软件系统中,某些类型因逻辑而具有多个维度。如何应对这种类型的多维度变化?
2. 应用场景某类由于自身逻辑,存在多个维度的变化,如:
- 尺寸:小、中、大 - 颜色:红、黄、蓝
如何设计一个系统,既能保持类的封装性,又能适应多种维度变化?
答案:使用桥接模式。
本文实例讲述了PHP设计模式:桥连模式Bridge。分享给大家供大家参考,具体如下:
1. 概述
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?
例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:
•第一种设计方案是为每一种形状都提供一套各种颜色的版本。
•第二种设计方案是根据实际需要对形状和颜色进行组合。
方案1:
方案2:
对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。
例子2:一个普通的开关控制的电灯、电风扇等等,都是桥接的例子。
本文共计3039个文字,预计阅读时间需要13分钟。
本例简述了PHP设计模式:桥接模式。
分享给家人供参考,具体如下:
1. 概述在软件系统中,某些类型因逻辑而具有多个维度。如何应对这种类型的多维度变化?
2. 应用场景某类由于自身逻辑,存在多个维度的变化,如:
- 尺寸:小、中、大 - 颜色:红、黄、蓝
如何设计一个系统,既能保持类的封装性,又能适应多种维度变化?
答案:使用桥接模式。
本文实例讲述了PHP设计模式:桥连模式Bridge。分享给大家供大家参考,具体如下:
1. 概述
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?
例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:
•第一种设计方案是为每一种形状都提供一套各种颜色的版本。
•第二种设计方案是根据实际需要对形状和颜色进行组合。
方案1:
方案2:
对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。
例子2:一个普通的开关控制的电灯、电风扇等等,都是桥接的例子。

