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

西安保洁公司网站建设/最近实时热点新闻事件

西安保洁公司网站建设,最近实时热点新闻事件,做公司网站的时间,郑州市城乡建设厅网站一、概要 桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们都可以独⽴的变化。其核心思想就是解耦,在面向对象编程中,抽象和实现是通过继承关系来实现的,但这…

一、概要

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们都可以独⽴的变化。其核心思想就是解耦,在面向对象编程中,抽象和实现是通过继承关系来实现的,但这种关系是静态的,不能在运行时动态改变,而桥接模式是通过组合关系来取代继承关系,从而实现抽象部分和实现部分之间的解耦,提高系统的灵活性和可维护性。对应现实生活,它把事物的两个维度分离,使得这两个维度可以独立的变化,维度之间可以灵活的组合。

比如生活中的支付场景,要完成一次支付,首先你要考虑使用哪种支付平台,用微信支付还是支付宝支付。选定平台后,如何去支付,是用密码支付,还是指纹支付。在这种场景下,支付平台和支付方式就是事物的两个维度,分别对应抽象层和实现层,这两个维度可以独立变化,独立扩展。最后通过一个桥接结构将两个维度进行关联,所有的支付情景就是两个维度子项的笛卡尔积。很显然,通过桥接模式可以避免建立这个“积”数量个的类继承关系。
bridgepattern01

优点

  • 分离抽象和实现,降低系统的耦合度,提升系统的扩展性。
  • 符合开闭原则,即对扩展开放,对修改关闭。
  • 隐藏具体实现细节,使得系统更加安全,更加稳定。
  • 细化控制,桥接模式允许在运行时动态地选择具体实现,提供更大的灵活性和自由度。

缺点

  • 增加系统复杂性,桥接模式需要引入抽象部分和实现部分的抽象类和具体实现类,会增加类的数量,同时需要管理抽象部分和实现部分之间的关联关系。
  • 增加系统的理解与设计难度,增加开发工作量。

适用场景

  • 当需要分离抽象部分和实现部分,降低系统耦合时,可以使用桥接模式。

  • 当希望在抽象部分和实现部分之间建立灵活的组合关系,避免在两个层次之间建立静态继承时。

  • 当一个事物存在两个独立变化的维度,且这两个维度都需要进行扩展,适合使用桥接模式。

  • 对于那些不希望因使用继承或多层次继承导致类数量爆炸增长的系统,桥接模式也尤为适用。

二、模拟支付场景

对于上述的支付场景,无论支付平台以及支付方式如何扩展,我们都可以通过桥接模式来组合系统中的所有支付情景。系统总体结构如下:

bridgepattern-uml

步骤1:模拟支付方式接口PayMode和其两大实现

public interface PayMode {void paymode();
}
public class PasswordPay implements PayMode{@Overridepublic void paymode() {System.out.println("--用密码支付");}
}
public class FingerPay implements PayMode{@Overridepublic void paymode() {System.out.println("--用指纹支付");}
}

步骤2:创建抽象类Pay,和两大支付平台实现类

Tip:这里创建的是抽象类Pay而不是接口,因为需要在类中持有PayMode的引用,这个引用就是所谓的“桥”。还需要注意一点,payMode访问修饰符为protected,方便继承给子类。

public abstract class Pay {protected PayMode paymode;public Pay(PayMode paymode) {this.paymode = paymode;}public abstract void pay();
}
public class WechatPay extends Pay{public WechatPay(PayMode paymode) {super(paymode);}@Overridepublic void pay() {System.out.println("微信支付:");paymode.paymode();}
}
public class AliPay extends Pay{public AliPay(PayMode paymode) {super(paymode);}@Overridepublic void pay() {System.out.println("支付宝支付:");paymode.paymode();}
}

步骤3:客户端测试

public class Client {public static void main(String[] args) {Pay wechatPay1=new WechatPay(new PasswordPay());Pay wechatPay2=new WechatPay(new FingerPay());wechatPay1.pay();wechatPay2.pay();System.out.println();Pay aliPay1=new AliPay(new PasswordPay());Pay aliPay2=new AliPay(new FingerPay());aliPay1.pay();aliPay2.pay();}
}

测试结果

image-20230525165942638

三、总结

本文详细讲解了桥接模式的原理和实现,通过模拟经典的支付场景,让你进一步加深对桥接模式的理解。总的来说,桥接模式在将抽象和实现解耦、提高系统的可扩展性和灵活性方面非常有用。然而,桥接模式的引入会增加系统的理解与设计难度,在设计阶段应根据实际需求和系统的复杂度来评估是否使用桥接模式。

希望这篇文章对你的学习有所帮助!如果你觉得这篇文章对你有帮助,请不要吝啬你的赞美和分享。在此感谢你的阅读,我们下次再见!

1711edbd2bd444b1b647e09c2c3aff0d

http://www.jmfq.cn/news/5089645.html

相关文章:

  • 重庆潼南网站建设哪家便宜/网络营销推广是做什么的
  • 怎样建设邮箱网站/seo网站优化价格
  • 天津网站建设公司排名/网站推广文章
  • 九江 网站建站 设计 公司/西安网站到首页排名
  • 亳州网站网站建设/百度权重域名
  • 上海浦东新区科技网站建设/网络营销师证书有用吗
  • 香港网站没有icp备案吗/河北网站seo策划
  • 设计头条/seo推广专员招聘
  • 天河网站建设制作/网站建设的推广渠道
  • 四川做网站设计哪家好/竞价服务托管价格
  • 企业信息信用系统/不错宁波seo公司
  • 网站的当前位置导航如何做/it培训机构学费一般多少
  • 义乌制作网站/镇江关键字优化品牌
  • 企业网站建设顾问/网络科技有限公司
  • 有没有好网站推荐/做app推广去哪找商家
  • 个人工作室经营范围/seo服务哪家好
  • 阿里云网站建设详细教程/百度移动端关键词优化
  • 广州做网站的公司有哪些/代写文章
  • 做试卷挣钱的网站/靠谱的代写平台
  • 美食网站建设的重要性/软文推广网站
  • 南京高端网站制作/企业推广网络营销
  • 网页版微信下载/百度seo优化推广公司
  • 来年做那些网站能致富/google play下载安卓
  • 网站视频下载/网站首页的优化
  • wordpress微信采集器/网站优化 seo和sem
  • 服务器上做网站/竞价排名软件
  • 中山英文网站建设/爱站网关键词搜索工具
  • 邢台信息港招聘/seo排名优化课程
  • 怎么做百度网盘链接网站/贵州网站seo
  • 营销型网站建设技术指标/外贸软件排行榜