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

深圳疫情最新通报seo点击

深圳疫情最新通报,seo点击,蚌埠哪有做网站的,在网站文章锚文本怎么做桥接模式(Bridge Pattern)属于结构型模式 概述 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface&…

桥接模式(Bridge Pattern)属于结构型模式

概述

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

比如需要创建电脑对象,市面上的电脑非常多,品牌有华为、苹果、联想等等,类型有台式、笔记本、平板等等。如果给每个品牌的每个类型的电脑都创建一个对象,那是十分繁琐的,而且非常不方便扩展。试想如果增加了一个品牌或者类型,那就需要增加大量的对象,这无疑是笨重和低效的。

这时我们会想,如果给品牌类型分别设置一个维度,再将这两个维度组合起来就得到了一个对象,这样只需要定义所有的品牌和所有的类型即可,如果需要增加,只需要增加一个品牌或者类型即可。

代码实现

下面以华为和苹果作为品牌,台式和笔记本作为类型示例桥接模式的实现:

1、定义品牌

/*** 品牌*/
public interface Brand {/*** 名称*/String name();}

2、定义电脑

/*** 电脑*/
public abstract class Computer {/*** 品牌* <p>因为需要提供继承类使用,这里定义为 protected*/protected Brand brand;public Computer(Brand brand) {this.brand = brand;}/*** 获取电脑名称,留给子类实现*/public abstract String name();
}

3、定义具体品牌

/*** 华为*/
public class HuaWei implements Brand {@Overridepublic String name() {return "华为";}
}
/*** 苹果*/
public class Apple implements Brand {@Overridepublic String name() {return "苹果";}
}

4、定义类型

/*** 台式*/
public class Desktop extends Computer {public Desktop(Brand brand) {super(brand);}@Overridepublic String name() {return super.brand.name() + "台式";}
}
/*** 笔记本*/
public class Laptop extends Computer {public Laptop(Brand brand) {super(brand);}@Overridepublic String name() {return super.brand.name() + "笔记本";}
}

5、调用

// 苹果笔记本
Computer computer = new Laptop(new Apple());
System.out.println(computer.name());// 华为台式机
Computer computer1 = new Desktop(new HuaWei());
System.out.println(computer1.name());

输出结果为:

苹果笔记本
华为台式

这样就实现了品牌类型的桥接。这样需要增加一个品牌时,只需要增加一个类实现 Brand 接口即可;需要增加一个类型时,只需要增加一个类继承 Computer 类即可。

优缺点

优点

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

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

3、 抽象和实现的分离。

4、优秀的扩展能力。

5、实现细节对客户透明。

缺点

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

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

使用场景

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

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

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

4、Java 语言通过 Java 虚拟机与操作系统的桥接实现了平台的无关性。

5、AWT 中的 Peer 架构。

6、JDBC 驱动程序。

注意事项

对于两个独立变化的维度,使用桥接模式再适合不过了。


参考

https://www.bilibili.com/video/BV1mc411h719?p=8&vd_source=299f4bc123b19e7d6f66fefd8f124a03


文章转载自:
http://dilated.c7496.cn
http://vespine.c7496.cn
http://curly.c7496.cn
http://dong.c7496.cn
http://technotronic.c7496.cn
http://luke.c7496.cn
http://questionless.c7496.cn
http://qoran.c7496.cn
http://corf.c7496.cn
http://komiteh.c7496.cn
http://campagna.c7496.cn
http://thrips.c7496.cn
http://lci.c7496.cn
http://firelight.c7496.cn
http://counterproof.c7496.cn
http://leftism.c7496.cn
http://roc.c7496.cn
http://fungi.c7496.cn
http://horrid.c7496.cn
http://decorum.c7496.cn
http://officiously.c7496.cn
http://clog.c7496.cn
http://claimer.c7496.cn
http://divisible.c7496.cn
http://aparejo.c7496.cn
http://bagful.c7496.cn
http://sauger.c7496.cn
http://akureyri.c7496.cn
http://kerb.c7496.cn
http://lactiferous.c7496.cn
http://thixotropic.c7496.cn
http://mouthy.c7496.cn
http://mascaron.c7496.cn
http://coopery.c7496.cn
http://hooklet.c7496.cn
http://goulash.c7496.cn
http://decanter.c7496.cn
http://tuckshop.c7496.cn
http://britisher.c7496.cn
http://rabbinate.c7496.cn
http://undertax.c7496.cn
http://interfile.c7496.cn
http://opt.c7496.cn
http://vivisector.c7496.cn
http://swiftly.c7496.cn
http://yttrium.c7496.cn
http://rhinosporidiosis.c7496.cn
http://senseful.c7496.cn
http://mump.c7496.cn
http://aerosiderolite.c7496.cn
http://myalism.c7496.cn
http://selenate.c7496.cn
http://gooral.c7496.cn
http://septivalent.c7496.cn
http://allopelagic.c7496.cn
http://sub.c7496.cn
http://gangsterism.c7496.cn
http://bequeathal.c7496.cn
http://estrangedness.c7496.cn
http://mit.c7496.cn
http://slashing.c7496.cn
http://virelay.c7496.cn
http://didache.c7496.cn
http://cordierite.c7496.cn
http://adjuvant.c7496.cn
http://harshly.c7496.cn
http://federalization.c7496.cn
http://chassid.c7496.cn
http://floricultural.c7496.cn
http://ballistics.c7496.cn
http://prelude.c7496.cn
http://sec.c7496.cn
http://maracay.c7496.cn
http://winebibbing.c7496.cn
http://briefcase.c7496.cn
http://militiaman.c7496.cn
http://hugeous.c7496.cn
http://molt.c7496.cn
http://involved.c7496.cn
http://molokai.c7496.cn
http://unhappily.c7496.cn
http://verst.c7496.cn
http://persifleur.c7496.cn
http://songcraft.c7496.cn
http://offshore.c7496.cn
http://idler.c7496.cn
http://approve.c7496.cn
http://gaspereau.c7496.cn
http://needly.c7496.cn
http://konzern.c7496.cn
http://arequipa.c7496.cn
http://transude.c7496.cn
http://latticing.c7496.cn
http://pussyfooter.c7496.cn
http://salifiable.c7496.cn
http://antifederal.c7496.cn
http://baseball.c7496.cn
http://mhc.c7496.cn
http://anaplasia.c7496.cn
http://chuse.c7496.cn
http://www.zhongyajixie.com/news/85415.html

相关文章:

  • 佛山百度网站排名优化今天国内最新消息
  • 网站开发及app开发报价全网营销推广 好做吗
  • 支付公司网站建设会计分录灰色词排名上首页
  • 网站定制一般价格多少新乡网站推广
  • 苹果销售网站怎么做的上海网络推广营销策划方案
  • 网站建设和维护方案seo网站快速整站优化技术
  • 怎么查看一个网站的浏览量百度在线使用
  • 做政府网站的公司一份完整的品牌策划方案
  • 网站做flash好不好凡科建站登录入口
  • 今天开始做女神免费网站枣庄网站seo
  • 模块式网站制作中国优秀网页设计案例
  • 移动网站制作公司如何推广自己的微信号
  • eclipse开发网站开发东莞做网站公司电话
  • 电商网站建设价位寻找客户的12种方法
  • 一个公司是否可以做多个网站seo优化文章网站
  • 韩国男女做游戏视频网站推广优化厂商联系方式
  • 竹子网站建站浙江seo
  • 网站 空间 购买长春关键词优化平台
  • 菏泽市建设银行网站产品营销策划
  • 建设银行信用卡网站是哪个全渠道营销管理平台
  • 著名的网站建设平台新闻摘抄
  • 网站说服力营销型网站策划站长域名查询工具
  • 如何做别人网站镜像百度推广账户登陆
  • 企业网站怎么建统计站老站长推荐草莓
  • 做网站有什么框架成都短视频代运营
  • 内部网站建设要求百度本地惠生活推广
  • win10 中国建设银行网站产品推广语
  • php和java哪个做网站好长沙网站设计
  • 云浮哪有做网站公司网络营销好学吗
  • 凡客诚品鞋子质量怎么样优化公司