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

百度云做网站有优势吗品牌营销策划方案

百度云做网站有优势吗,品牌营销策划方案,南宁做网站比较好的公司有哪些,做安全平台网站桥接模式(bridge pattern) 桥接模式时将抽象部分与它的实现部分分离,使他们可以独立的变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或者接口(interface)模式&…

桥接模式(bridge pattern)

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

    以前使用的多层继承结构,耦合性太强,且违反了单一职责原则,如下图

如果以这种结构去设计程序的架构的话,拓展性会有很大的问题。

比如如果想增加一个新的电脑品牌,需要写三个类,如果想增加一个电子产品,依旧要写三个类,非常繁琐,

违反了单一职责原则:每个类只负责一个东西,每个类只有一个功能。

而从上图看出,每一个类的最终实现类都负责了不止一个事务,如联想台式:联想是品牌,而台式是电脑的品种。每个类拆分的不够彻底

分析:这个场景有两个变化的维度:品牌,类型

这里面的每个节点就是上面结构图中的最终实现类。

将结构看成这样,那我们在新增品牌的时候,只需要在x轴增加就好了,在新增类型的时候,只需要在y轴增加就好了,只要想办法通过一个链接点把它连起来,就可以形成一个新的产品。

而这,就是桥接模式,

我们需要将原来的事物高度抽象,只要超过两个场景变换维度的事物,就将其抽象出来,这个类型写一个抽象类,品牌写一个抽象类,通过一座桥将其连接起来,就可以构建产品

使用桥接模式来重写该事务

首先创建品牌接口,

 package com.lyc.bridge;// 品牌,抽象类或者接口public interface Brand {void info();}

再写品牌实现类

 package com.lyc.bridge;//联想品牌public class Lenovo implements Brand{@Overridepublic void info() {System.out.print("联想品牌");}}

 package com.lyc.bridge;//苹果品牌public class Apple implements Brand{@Overridepublic void info() {System.out.print("Apple");}}

开始写电脑桥接类,在类中建立连接品牌的桥(即定义品牌属性,再写品牌构造器,在写电脑实现类的时候,无需再连接品牌类)这样大大减少了这两个事物的耦合度。

 package com.lyc.bridge;//抽象的电脑类//桥接类 用于将电脑与品牌进行关联public  class Computer {//组合,品牌 桥接模式,桥用于链接,与适配器模式不同protected Brand brand; //子类在使用的时候可以随意设置品牌public Computer(Brand brand){this.brand = brand;}public void info(){//自带品牌brand.info();}}

再写电脑实现类

 package com.lyc.bridge;​public class Laptop extends Computer{public Laptop(Brand brand) {super(brand);}​@Overridepublic void info() {super.info();System.out.print("笔记本");}}

 package com.lyc.bridge;​public class Desktop extends Computer{public Desktop(Brand brand) {super(brand);}public void info(){super.info();System.out.print("台式机");}}

最后进行测试:

 package com.lyc.bridge;​public class Test {public static void main(String[] args) {//苹果笔记本Computer computer = new Laptop(new Apple());computer.info();System.out.println("");//联盟台式机Desktop desktop = new Desktop(new Lenovo());desktop.info();}}

效果:

这样就品牌与类型相互分离了

注意事项:

  1. 抽象部分与实现部分需要分离,不能有过多的耦合

  2. 桥接模式适用于多个维度的变化,如果维度较少,使用继承更加简单

  3. 桥接模式会增加系统复杂度,谨慎使用

类图:

桥接模式

  • 好处分析:

    • 桥接模式偶尔类似于多继承方案,但是多继承方案违背了类的单一职责原则,复用性较差,类的个数也非常多,桥接模式是比多继承方案更好的解决方法,极大地减少了子类的个数,从而降低管理和维护的成本

    • 桥接模式提高了系统的可扩容性,在两个变化维度任意扩展一个维度,都不需要修改原有模式,符合开闭原则,就像一座桥,可以把两个变化的维度连接起来。

  • 缺点分析:

    • 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程

    • 桥接模式要求正确识别出系统中两个独立变化的维度,因此适用范围具有一定的局限性

  • 最佳实践

    • 如果一个系统需要在构建的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,可以通过桥接模式使他们在抽象层建立一个关联关系,抽象化角色和实现化角色可以以继承的方式独立扩展而互不影响,在程序运行时可以将动态将一个抽象化子类的对象和一个实现化子类的对象进行组合,及系统需要对抽象化角色和现实化角色进行动态耦合

    • 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展

    • 虽然在系统中使用扩展是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计需求需要独立管理这两者,对于那些不希望使用继承或者因为多层次继承导致系统类的个数急速增加的系统,桥接模式非常适合

  • 使用实例

    • Java语言通过Java虚拟机实现了平台的无关性

    • AWT中的Peer架构:在同一个页面中,在window中与在Liunx中的画面不一致,代码一致,效果不同

    • JDBC驱动程序也是桥接模式的应用之一,JDBC本身就是一个抽象角色,他可以连接MySQL,也可以链接Oracle,与具体实现的角色进行分离

拓展:桥接模式+适配器模式?

桥接模式可以用在系统创建之初,就是类似于两个相关维度,如果在后面添加和前两个基本无关的维度,可以使用适配器模式将其连接起来。

我们应该将前面学习过的设计模式,尝试将其应用到自身代码中,加强理解!

希望对大家有所帮助!

http://www.dtcms.com/wzjs/84859.html

相关文章:

  • 武汉网站建设智能 乐云践新产品策划方案怎么做
  • 手机端网站开发页seo免费诊断电话
  • 网站制作能赚多少钱高清免费观看电视网站
  • 网站涉及敏感视频等该怎么做世界新闻最新消息
  • 廊坊那家做网站排行榜东莞网站制作
  • 校园网自助网站江苏seo外包
  • 网站建设公司方唯小红书信息流广告
  • 文章类网站怎么免费创建个人网站
  • 做3d地形比较好的网站什么是seo标题优化
  • 做网站需要什么工具如何在百度上发自己的广告?
  • 达建网站防止爬虫的办法本周新闻热点10条
  • 最好的购物网站排名德芙巧克力的软文500字
  • 营销网站建设流程图央视新闻最新消息今天
  • 怎么样才能搜索到自己做的网站网络营销理论基础有哪些
  • 企业网站建设有没有模板中国足球世界排名
  • 免费网站建设阿里云自己在家怎么做电商
  • 芙蓉建设官方网站榆林市网站seo
  • 邯郸网站建设选哪家好创建网站教程
  • 旅游网站建设色彩搭配表深圳快速seo排名优化
  • 北京网站建设方案书如何做网站网页
  • 真人性做爰官方网站免费的发帖收录网站
  • 美食怎么做的小视频网站中文域名注册官网
  • 住房和城乡建设部网站一级建造师线上推广引流渠道
  • 2023山东疫情严重吗现在seo怎么优化步骤
  • react做的网站有哪些企拓客软件多少钱
  • 用asp做网站课程新公司如何做推广
  • 深圳做夜场做网站seo快速排名上首页
  • 怎么查看网站哪个公司做的google搜索网址
  • 网站推广策划的思路外包客服平台
  • youku网站开发技术seo专家招聘