浅谈设计模式-桥接模式
来源:互联网 发布:淘宝网服装男装 编辑:程序博客网 时间:2024/06/06 05:51
最近在学习设计模式,简单记录一下
大话设计模式有写:
桥接模式(Bridge):将抽象部分与他的实现部分分离,使他们都可以独立的变化。
也就是实现系统可能有多角度分类,每一种分类都有可能变化,
那么就把这种多角度分离出来让他们独立变化,减少他们之间的耦合。
举个例子:
比如做一个蛋糕,
在形状上,可以有圆形和方形,
在类型上,可以有奶油类型和水果类型。
如果针对每种类型和形状都写成单独的类会有四种,即圆形水果蛋糕、圆形奶油蛋糕、方形水果蛋糕、方形奶油蛋糕,
当增加形状和类型时会产生非常多的类,这显然不是我们所希望的,这时就要用到桥接模式。
代码:(小提示:eclipse,复制代码后,鼠标点击包那里,直接粘贴,一个类就自动建好了)
//蛋糕形状接口public interface CakeShape {public void shape();}
//蛋糕形状:方形public class Square implements CakeShape{@Overridepublic void shape() {System.out.println("蛋糕形状:方形");}}
//蛋糕形状:圆形public class Circle implements CakeShape{@Overridepublic void shape() {System.out.println("蛋糕形状:圆形");}}
//蛋糕类型抽象类public abstract class CakeType {//引用蛋糕形状接口CakeShape cakeShape;//蛋糕类型void type(){};}
public class Cream extends CakeType{public void type(){System.out.println("蛋糕类型:奶油");}}
//蛋糕类型:水果public class Fruit extends CakeType{public void type(){System.out.println("蛋糕类型:水果");}}
//测试类public class Product {public static void main(String[] args) {CakeType ct = new Fruit();ct.cakeShape = new Circle();ct.type();ct.cakeShape.shape();}}
输出结果:
蛋糕类型:水果
蛋糕形状:圆形
可以看到,桥接模式主要通过一个接口类,和一个抽象类,将两种子类型进行分离,由抽象类引用接口,实现调用。
桥接模式和很多模式都很像,比如策略模式、工厂模式,有很多大神分析区别,有兴趣的可以看下这篇文章
点击打开链接http://blog.csdn.net/youthon/article/details/7653389。
其实网上有很多人写各种设计模式,我写这篇文章的主要目的是想记录一下自己的学习历程,养成一个写博客的好习惯,
尽量做到简单易懂,不想弄太多文字定义的东西。
能力不足,写的很浅,有错误地方希望大神多多指导。
阅读全文
1 0
- 设计模式--浅谈桥接模式
- 浅谈设计模式之桥接模式
- 浅谈设计模式-桥接模式
- 设计模式--浅谈适配器模式
- 设计模式--浅谈命令模式
- 设计模式--浅谈原型模式
- 设计模式--浅谈策略模式
- 浅谈设计模式
- 设计模式浅谈
- 设计模式浅谈
- 浅谈设计模式
- 浅谈设计模式
- Java设计模式浅谈
- 浅谈设计模式
- 浅谈DAO设计模式
- 浅谈设计模式
- 浅谈设计模式
- 浅谈MVC设计模式
- UI控件之UISlider简单图片放大与缩小的应用
- jQuery邮箱验证正则表达式
- TestNG 监听器扩展插件 NetEase Arrow
- Swift构造函数
- Ceph简介及评论
- 浅谈设计模式-桥接模式
- Iconfont-阿里巴巴矢量图标库的SVG玩法
- IOCP与SO_KEEPALIVE
- LUA 文本编辑相关
- python 列表操作的函数和方法
- Data URL和图片,及Data URL的利弊
- 大牛博客!Spark / Hadoop / Kafka / HBase / Storm
- CDS Table Functions Implemented by AMDP
- STL vector+sort排序和multiset/multimap排序比较