当前位置: 首页 > news >正文

汕头模板建站软件网站建设和网站设计一样吗

汕头模板建站软件,网站建设和网站设计一样吗,遵义本地网,深圳做app网站的公司名称定义: 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 本章代码:小麻雀icknn/设计模式练习 - Gitee.com 结构: 抽象化(Abstraction)角色&#xff1a…

定义:

桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。

本章代码:小麻雀icknn/设计模式练习 - Gitee.com 

 结构:

  • 抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。
  • 扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
  • 实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。
  • 具体实现化(Concrete Implementor)角色:这个角色给出实现化角色接口的具体实现。

UML类图:

实例:

抽象化角色

package com.study.main.Bridging;import java.math.BigDecimal;public abstract class Pay {IPayMode payMode;public Pay(IPayMode payMode) {this.payMode = payMode;}abstract String transfer(String uid, BigDecimal amount);
}

 扩展抽象化角色

package com.study.main.Bridging;import java.math.BigDecimal;public class WXPay extends Pay{public WXPay(IPayMode payMode) {super(payMode);}@OverrideString transfer(String uid, BigDecimal amount) {boolean security = payMode.security(uid);if(security){System.out.println("恭喜您,您用ZFB成功支付了"+amount+"元");}return uid;}
}
package com.study.main.Bridging;import java.math.BigDecimal;public class ZFBPay extends Pay{public ZFBPay(IPayMode payMode) {super(payMode);}@OverrideString transfer(String uid, BigDecimal amount) {boolean security = payMode.security(uid);if(security){System.out.println("恭喜您,您用ZFB成功支付了"+amount+"元");}return uid;}
}

 实现化角色

package com.study.main.Bridging;public interface IPayMode {boolean security(String id);
}

具体实现化角色

package com.study.main.Bridging;public class PasswordTypeMethodPay implements IPayMode{@Overridepublic boolean security(String id) {System.out.println("使用密码支付,验证id为" +id );return !id.isBlank();}
}
package com.study.main.Bridging;public class FaceTypeMethodPay implements IPayMode{@Overridepublic boolean security(String id) {System.out.println("使用面容支付,验证id为" +id );return !id.isBlank();}
}

调用

package com.study.main.Bridging;import java.math.BigDecimal;public class BridginMain {public static void main(String[] args) {IPayMode faceTypeMethodPay = new FaceTypeMethodPay();WXPay wxPay = new WXPay(faceTypeMethodPay);wxPay.transfer("1111111-2222-3333", BigDecimal.valueOf(200));IPayMode passwordTypeMethodPay = new PasswordTypeMethodPay();ZFBPay zfbPay = new ZFBPay(passwordTypeMethodPay);zfbPay.transfer("222-33-239-2323", BigDecimal.valueOf(30000));}
}

运行&&结果  

桥接模式在源码中应用:

特别简短的代码,其实只调用了DriverManager中的registerDriver方法来注册驱动。当驱动注册完成后,我们就会开始调用DriverManager中的getconnection方法了 

场景分析:

  • 抽象实现灵活 : 抽象 和 具体实现 之间 , 需要 增加更多灵活性 的情况下 , 适合使用桥接模式 ;
  • 使用 桥接模式 , 可以 避免在这两个层次之间 , 建立静态的继承关系 , 通过 桥接模式 在二者之间建立 关联关系 ;
  • 抽象 和 实现 都可以 各自 以继承的方式扩展 , 互不影响 ;
  • 可以动态的 将 抽象 的子类对象 和 实现 的子类对象 进行组合 , 在系统中 , 抽象 和 实现 之间进行了解耦 ;
  • 独立变化维度 : 一个类存在 2 22 个或更多的 独立变化维度 , 并且这些维度都需要 独立扩展 ;
  • 抽象部分可以 独立扩展 , 具体实现的部分 , 也可以独立扩展 ;不使用继承 : 不希望使用继承 , 或 因多层继承导致系统类的个数增加 ;

桥接模式优缺点 :

优点:

  • 抽象和实现的分离。
  • 优秀的扩展能力。
  • 经常遇到一些可以通过两个或多个维度划分的事物,第一种解决方式就是多层继承,但是复用性比较差,同时类的个数也会很多,桥接模式是改进其的更好办法
  • 桥接模式增强了系统的扩展性,在两个维度中扩展任意一个维度都不需要修改原有代码,符合开闭原则

缺点:

  • 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。
  • 桥接模式增加了系统的理解与设计难度:因为聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立变化的维度
http://www.yayakq.cn/news/723007/

相关文章:

  • 网站界面尺寸wordpress站群 优化
  • 静态网站素材网站开发具体工作有那些
  • 关于建设二级网站的报告免费网站建设空间
  • 在家用服务器做网站网站租用服务器费用
  • 建网站收费科技展馆设计效果图
  • 网站上传到虚拟服务器wordpress调用子栏目
  • 网站中的二级菜单怎么做23新会网页制作公司
  • 网站开发常见技术问题专业网站建设服务商
  • 昆明网站建设SEO公司兼职网站编辑怎么做
  • 一分钟建站淘宝客怎么自建网站做推广
  • 怀柔网站制作网页设计模板免费网站
  • 手机端访问 php网站互联网创业平台
  • 近五年网站开发参考文献财务系统
  • 新网官方网站无锡手机网站
  • 宁波海曙区建设局网站wordpress 图片缩放
  • 中国电子系统建设三公司网站公司的网站怎么运营
  • 妇科医院手机网站源码网站双线选择
  • 制作个人网站西安百度提升优化
  • 网站服务器过期了怎么办全国工商企业查询官网
  • 网站设计抄袭建站基础:wordpress安装教程图解 - 天缘博客
  • 本地网站模板做网站一个月能挣多少
  • 东莞市做网站的最好的是哪家的网站关键词全国各地的排名情况
  • 做宣传册模板的网站免费建立网站的有哪里
  • 做网站托管的好处工信部网站备案信息怎么查询
  • 陕西省建设部网站高端网站定做
  • 建个人网站赚钱多吗用rp怎样做网站
  • 外贸网站设计注意事项图片识别
  • 洮南网站建设哪家好html网页制作
  • 足球网站模板下载移动网站自助制作
  • 酒店品牌设计网站建设新网站做优化要准备什么