Bridge桥接模式(设计模式11)
2015-09-16 19:34
441 查看
在没有使用桥接模式:
扩展新问题(类归属膨胀问题)
1增加性的电脑类型,要增加每个品牌下面的类
2如果要增加一个新的电脑品牌,要增加美中电脑类型的类
违背单一职责原则:
· 一个类:联想笔记本,有两个引起这个类变化的原因。
bridge桥接模式:
品牌与类型是两个维度,要将其分开。通过一个Bridge桥连接两个属性
如本例中,将品牌设置为接口,通过实现这个接口,创建不同的品牌类
而在类型创建一个Computer抽象类,引入Brand(protected Brand brand;),
通过这个引入的brand作为bridge连接品牌和类型。
由此种类和品牌分开,相互独立。
增加新的种类,不影响其他对象那个,直接添加。
//品牌类:
创建一个Brand接口,通过实现该接口,
Lenovo,Dell实现Brand接口。
//computer 电脑的类型。
Computer是一个抽象类,因为Brand是一个接口,brand是抽象属性。
通过持有Brand对象是Computer具有品牌属性。protected Brand brand;
通过构造函数将Brand传进来。
通过集成Computer创建Desktop和Laptop类。
如果要增加新的品牌创建实现Brand接口的类
如果要增加类型:创建继承Computer抽象类的类
扩展新问题(类归属膨胀问题)
1增加性的电脑类型,要增加每个品牌下面的类
2如果要增加一个新的电脑品牌,要增加美中电脑类型的类
违背单一职责原则:
· 一个类:联想笔记本,有两个引起这个类变化的原因。
bridge桥接模式:
品牌与类型是两个维度,要将其分开。通过一个Bridge桥连接两个属性
如本例中,将品牌设置为接口,通过实现这个接口,创建不同的品牌类
而在类型创建一个Computer抽象类,引入Brand(protected Brand brand;),
通过这个引入的brand作为bridge连接品牌和类型。
由此种类和品牌分开,相互独立。
增加新的种类,不影响其他对象那个,直接添加。
//品牌类:
创建一个Brand接口,通过实现该接口,
Lenovo,Dell实现Brand接口。
//computer 电脑的类型。
Computer是一个抽象类,因为Brand是一个接口,brand是抽象属性。
通过持有Brand对象是Computer具有品牌属性。protected Brand brand;
通过构造函数将Brand传进来。
通过集成Computer创建Desktop和Laptop类。
如果要增加新的品牌创建实现Brand接口的类
如果要增加类型:创建继承Computer抽象类的类
相关文章推荐
- QT5开发及实例1 计算圆周面积 之新建项目文件
- 单例模式C++实现
- SQL Server 2008 数据库定时自动备份
- Java 模版方法(Template Method)
- [POJ 3468]A Simple Problem with Integers[树状数组区间更新+求和]
- SpringMVC部署步骤
- c++find函数用法
- 结构体变量类型前面的struct能不能省略
- codeforces 574D. Bear and Blocks
- SQL Server ->> 关于究竟ALTER INDEX ... REBUILD会不会导致改变索引选项和Filegroup的验证
- oracle 表空间不足处理
- XSS注入常用语句(整理)
- CSS
- View动画
- Objective-C Runtime 运行时之一:类与对象
- android获取当前焦点的位置,查找焦点的位置
- Windows API 之 InternetOpen、InternetOpenUrl、InternetReadFile
- COGS 498 TYVJ 1094 矩形分割 贪心
- SQL Server 2008 数据库同步
- jquery 动画效果函数