GOF23的一些总结(八)
来源:互联网 发布:python关键字是什么 编辑:程序博客网 时间:2024/05/29 03:40
桥接模式出现要解决的问题:
这是一个扩展起来很麻烦的类?下面是使用单继承,多重继承实现多维度功能的
-扩展性问题(类个数膨胀问题):
如果要增加一个新的电脑类型:智能手机,则要增加各个品牌下面的类。
如果要新增加一个品牌:也要增加各种电脑类型的类。
-违反单一职责原则:
一个类,有两个原因,引起这个类的变化。
桥接模式适用场景
下面是类图
电脑接口和类的代码
package com.dasenlin.cn;/** * 电脑类,调用品牌具有的功能 * @author Administrator * */public class Computer { protected Brand brand; public Computer(Brand brand) { super(); this.brand = brand; } public void sale(){ brand.sale(); }}class Desktop extends Computer{ public Desktop(Brand brand) { super(brand); } @Override public void sale() { super.sale(); System.out.println("销售台式机"); }}class Laptop extends Computer{ public Laptop(Brand brand) { super(brand); } @Override public void sale() { super.sale(); System.out.println("销售笔记本"); }}
品牌接口和类关系的代码
package com.dasenlin.cn;/** * 品牌维度的接口 * @author Administrator * */public interface Brand { void sale();}class Lenovo implements Brand{ @Override public void sale() { System.out.println("销售联想电脑"); }}class Dell implements Brand{ @Override public void sale() { System.out.println("销售戴尔电脑"); }}
测试类
package com.dasenlin.cn;/** * 测试运行 * @author Administrator * */public class Client { public static void main(String[] args) { Computer comp = new Laptop(new Lenovo()); comp.sale(); Computer com = new Desktop(new Dell()); com.sale(); }}
0 0
- GOF23的一些总结(八)
- GOF23的一些总结(一)
- GOF23的一些总结(二)
- GOF23的一些总结(三)
- GOF23的一些总结(四)
- GOF23的一些总结(五)
- GOF23的一些总结(六)
- GOF23的一些总结(七)
- GOF23的一些总结(九)
- GOF23的一些总结(十)
- GOF23的一些总结(十一)
- GOF23的一些总结(十二)
- GOF23的一些总结(十三)
- GOF23的一些总结(十四)
- GOF23的一些总结(十五)
- GOF23的一些总结(十六)
- GOF23的一些总结(十八)
- GOF23的一些总结(十九)
- mysql中的字符串的拼接
- window下开发php简单扩展
- 【caffe源码研究】番外篇:(1) 使用Visual Studio 调试caffe代码
- chromium爱好者不可错过的一个开源分支
- vlan0即优先级帧的意义
- GOF23的一些总结(八)
- Android.mk
- 2016年总结赚钱的几个项目
- Qt常用类QAction类及方法简介
- 求一款能反编译混淆编译apk的软件
- popupwindow
- JMX 平台MXBean
- 自定义ProgressBar
- MySQL索引原理