Bridge 模式(转)
1.未使用Bridge实例:
- abstract class Shape{
- public void draw();
- }
- class Rectangle extends Shape{}
- class Circle extends Shape{}
- //这里业务出现了多种画图方式,DP1,DP2……
- //使用继承,创建不同绘图的类,类数量增多
- class V1Rectangle extends Rectangle{
- public void draw(){
- DP1.draw_line();
- }
- }
- class V2Rectangle extends Rectangle{
- public void draw(){
- DP2.draw_line();
- }
- }
- class V1Circle extends Circle{
- public void draw(){
- DP1.draw_Circle();
- }
- }
- class V2Circle extends Circle{
- public void draw(){
- DP2.draw_Circle();
- }
- }
2.传说中的Bridge模式
- abstract class Shape{
- public void draw();
- }
- //这里业务出现了多种画图方式,DP1,DP2……
- //抽象出接口出DP1,DP2
- interface Drawing{
- public void drawLine();
- public void drawCircle();
- }
- class V1Drawing{
- public void drawLine(){};
- public void drawCircle(){};
- }
- class V2Drawing{
- public void drawLine(){};
- public void drawCircle(){};
- }
- //使用组合 ,聚集Drawing
- class Rectangle extends Shape{
- public void draw(Drawing dp){
- dp.drawLine();
- }
- }
- class Circle extends Shape{
- public void draw(Drawing dp){
- dp.drawCircle();
- }
- }
- //抽象类Shape的派生类,使用一组实现(DP1,DP2)的接口
- //使得派生类不依赖于一组具体的实现,从设计模式而言,这称为Bridge模式
3.Bridge与Strategy模式
- 初读Bridge模式一头雾水,看过实例代码后,才略为知道其用途。感觉与Strategy模式相似,查阅相关信息后,个人认为如下
- 从考虑问题而言:
- Strategy模式:将具体算法封装,便于使用类替换算法
- Bridge模式:将一组抽象类的派生类使用的另一组实现进行抽象,使得派生类不依赖于具体实现
- 从实现而言,两者十分相似:
- Strategy和Bridge目的都是将实现抽象化,使用组合,而非直接继承。
- 区别就在Strategy思考的是抽象具体算法,Bridge是一组派生类在使用,抽象另外一组服务。
- 实际处理的问题不同,故分为两种不同模式
Bridge 模式(转)相关推荐
- 结构型模式之Bridge模式
1.意图 将抽象部分与实现部分分离,使它们都可以独立地变化 2.适用性 以下一些情况使用Bridge模式 (1)你不希望在抽象和它的实现部分之间有一个固定的绑定关系.例如这种情况可能是因为在程序运行时 ...
- 设计模式--桥(Bridge)模式
模式定义 将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化. 类图 应用场景 在业务功能具有抽象功能和差异实现时需要独立的适应后面可能遇到的变化时使用桥接模式 优点 1.符合开 ...
- 对Bridge模式的理解
<转>对Bridge模式的理解 对Bridge模式的理解 摘要:本文首先解释了Bridge模式的定义.然后通过一个例子,一步步将Bridge模式实现. 在一切开始之前,请允许我先给出三条经 ...
- 设计模式学习笔记——桥接(Bridge)模式
设计模式学习笔记--桥接(Bridge)模式 @(设计模式)[设计模式, 桥接模式, bridge] 设计模式学习笔记桥接Bridge模式 基本介绍 类的功能层次结构 类的实现层次结构 使用桥接模式的 ...
- docker network bridge模式,默认(一)
查看docker当前创建的网络 [root@localhost claroja]# docker network ls NETWORK ID NAME DRIVER SCOPE 3c145f070fd ...
- 设计模式之——bridge模式
Bridge模式,又叫桥接模式,是针对同一接口进行扩展与实现操作的一种设计模式. 这种模式,与之前学过的适配器模式具有相似的地方,也有不同的地方,下面就让我们一一解析吧. 首先,我们要了解到,为什么需 ...
- 【结构型】Bridge模式
桥接模式是为了将对象的抽象与实现分离,使得它们可以独立变化.简简单单的一句话,却已经是站在了更高抽象层面上来看待.设计.解决问题.平常我们多是对具体问题进行分析.抽象,然后就开始设计,这对多数情况下基 ...
- Bridge模式——对象结构型模式
今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接. (一)意图--将抽象部分和它的实现部分分离,使它们都可以独立地变化. 适用于从多维度描述的类型,拆解开来,使其能沿着各维度 ...
- java bridge 模式_学习:java设计模式—Bridge模式
一.引子 下面是吕振宇大牛的一个例子,个人觉得挺好的,有助于理解Bridge模式的设计目的: 设想要绘制一幅图画,蓝天.白云.绿树.小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦.毕竟细细的蜡笔 ...
最新文章
- Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
- ABAP Submit 用法解析
- fieldset 添加2个legend_第231号!增补乙基纤维素等2个饲添进入饲料添加剂品种目录(2013)...
- 和项目组研究计算几何
- Redmi K40 Pro将首批搭载骁龙888:或刷新骁龙888最低售价
- 疑似一加7渲染图曝光:弹出式自拍镜头+高颜值渐变配色
- python怎么读发音百度翻译-python selenium 爬取百度翻译单词音标-Go语言中文社区...
- Rust: codewars的Roman Numerals Encoder
- 数据库之常用SQL语句整合
- PPT绘图导出高清图
- Delphi第三方控件大比拼(收费篇)
- 轻松学会Python列表解析式
- 《地狱是上帝不在的地方》
- golang:%v,%+v,%#v区别
- Win10 如何显示所有任务栏图标,不进行隐藏
- 还是关于pdflatex生成的文件复制粘贴出现乱码问题
- 蓝牙室内定位之AOA室内定位技术详解--新导智能
- 用于著作权申报的代码导出功能
- BIOS SETUP UTILITY
- 星之元素-Stellarium
热门文章
- python爬取北师大珠海分校全校课程表
- Unity 之 UGUI 图片 和 粒子特效显示层级关系调整
- 手势识别智能传感器发展和未来的探究
- WARNING: The directory ‘/home/zhex/.cache/pip/http‘ or its parent directory is not owned by the curr
- C语言:计算多项式的导函数
- Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解
- iOS 启动页面设置和 AppIcon设置
- html css视频播放效果案例
- c语言shengchen图像,430编程C语言常识(IAR)(二)结构体与联合体
- 简单网店php,Php免费商城系统让你白手起家开网店