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

做搜狗pc网站优化快速网址之家大全

做搜狗pc网站优化快速,网址之家大全,免费网站空间哪个好,网站名称注意事项栏目总目录 概念 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与具体实现部分分离,使它们可以独立地变化。这种设计模式通过创建一个连接(桥)来将抽象和实现部分分离,从而允许…

栏目总目录


概念

桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与具体实现部分分离,使它们可以独立地变化。这种设计模式通过创建一个连接(桥)来将抽象和实现部分分离,从而允许它们独立地进行扩展和变化。桥接模式的主要目标是解耦抽象部分(如类或对象)和实现部分(如具体类或对象),使得它们可以分别进行扩展或修改,而不会相互影响。

角色定义

桥接模式主要包含以下四个角色:

  1. 抽象化(Abstraction)角色:定义抽象类的接口,并维护一个指向实现化对象的引用。
  2. 扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
  3. 实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。
  4. 具体实现化(Concrete Implementor)角色:给出实现化角色接口的具体实现。

好处

  1. 分离抽象接口与实现部分:使得抽象接口和实现部分可以独立变化,提高了系统的可扩展性。
  2. 符合开闭原则:对扩展开放,对修改关闭,降低了系统的维护成本。
  3. 符合合成复用原则:提高了代码的复用性,减少了代码冗余。
  4. 实现细节对客户透明:客户只需关心抽象接口,无需了解具体实现细节。

应用场景

  1. 需要在构件的抽象化角色和具体化角色之间增加更多的灵活性:通过桥接模式,可以在抽象层建立一个关联关系,避免在两个层次之间建立静态的继承联系。
  2. 不希望使用继承或因为多层次继承导致系统类的个数急剧增加:桥接模式可以取代多层继承方案,减少子类的数量。
  3. 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展:使用桥接模式可以分别对这些维度进行扩展,而不会影响其他部分。

示例代码

using System;// 实现化角色接口
namespace BridgePatternDemo
{public interface IDrawAPI{void DrawCircle(int radius, int x, int y);}// 具体实现化角色1public class RedCircle : IDrawAPI{public void DrawCircle(int radius, int x, int y){Console.WriteLine($"Drawing Circle[color: red, radius: {radius}, x: {x}, y: {y}]");}}// 具体实现化角色2public class GreenCircle : IDrawAPI{public void DrawCircle(int radius, int x, int y){Console.WriteLine($"Drawing Circle[color: green, radius: {radius}, x: {x}, y: {y}]");}}// 抽象化角色public abstract class Shape{protected IDrawAPI drawAPI;protected Shape(IDrawAPI drawAPI){this.drawAPI = drawAPI;}public abstract void Draw();}// 扩展抽象化角色public class Circle : Shape{private int x, y, radius;public Circle(int x, int y, int radius, IDrawAPI drawAPI) : base(drawAPI){this.x = x;this.y = y;this.radius = radius;}public override void Draw(){drawAPI.DrawCircle(radius, x, y);}}
}// 客户端代码
class Program
{static void Main(string[] args){// 创建具体实现化对象IDrawAPI redCircleAPI = new RedCircle();IDrawAPI greenCircleAPI = new GreenCircle();// 创建扩展抽象化对象,并注入具体实现化对象Shape redCircle = new Circle(100, 100, 10, redCircleAPI);Shape greenCircle = new Circle(100, 100, 10, greenCircleAPI);// 调用方法,展示结果redCircle.Draw();greenCircle.Draw();Console.ReadLine();}
}

在这个示例中,IDrawAPI 接口及其两个具体实现 RedCircleGreenCircle 构成了实现化角色的部分。Shape 抽象类和 Circle 类则构成了抽象化角色和扩展抽象化角色的部分。客户端代码(位于 Program 类中)展示了如何使用这些角色来创建和绘制不同颜色的圆形。

通过桥接模式,我们可以轻松地在不修改 Circle 类或 Shape 抽象类的情况下,添加新的颜色或绘制方法,只需实现新的 IDrawAPI 接口即可。这增加了系统的灵活性和可扩展性。

六、总结

桥接模式通过将抽象部分与实现部分分离,提高了系统的灵活性和可扩展性。在实际开发中,当遇到需要在两个独立变化的维度上进行扩展时,可以考虑使用桥接模式。希望本文能帮助你更好地理解和应用C#中的桥接模式。


文章转载自:
http://dinncokumquat.bkqw.cn
http://dinncoguyot.bkqw.cn
http://dinncoautodial.bkqw.cn
http://dinncoheinously.bkqw.cn
http://dinncoschoolwork.bkqw.cn
http://dinncomica.bkqw.cn
http://dinncoracking.bkqw.cn
http://dinncokokura.bkqw.cn
http://dinncorabat.bkqw.cn
http://dinncopleochromatic.bkqw.cn
http://dinncopossibilist.bkqw.cn
http://dinncocopperbottom.bkqw.cn
http://dinncoinflorescent.bkqw.cn
http://dinnconutria.bkqw.cn
http://dinncoamphidiploid.bkqw.cn
http://dinncocornflakes.bkqw.cn
http://dinncoegodystonic.bkqw.cn
http://dinncoleafcutter.bkqw.cn
http://dinncotrawl.bkqw.cn
http://dinncopsychon.bkqw.cn
http://dinncowainscoting.bkqw.cn
http://dinncogingko.bkqw.cn
http://dinncopianist.bkqw.cn
http://dinncogermproof.bkqw.cn
http://dinncoxiphodon.bkqw.cn
http://dinncoprotist.bkqw.cn
http://dinncofirry.bkqw.cn
http://dinncoretitrate.bkqw.cn
http://dinncosigmatropic.bkqw.cn
http://dinncoacetifier.bkqw.cn
http://dinncohunting.bkqw.cn
http://dinncocapitular.bkqw.cn
http://dinncocement.bkqw.cn
http://dinncoperiodically.bkqw.cn
http://dinncoanthocarpous.bkqw.cn
http://dinncodinitrogen.bkqw.cn
http://dinncoxenial.bkqw.cn
http://dinncoshabbiness.bkqw.cn
http://dinncohonesttogod.bkqw.cn
http://dinncoholophone.bkqw.cn
http://dinncocalgon.bkqw.cn
http://dinncojeopardously.bkqw.cn
http://dinncopurim.bkqw.cn
http://dinncoincenseless.bkqw.cn
http://dinncocinerin.bkqw.cn
http://dinncogrepo.bkqw.cn
http://dinncobillposting.bkqw.cn
http://dinncoaccommodating.bkqw.cn
http://dinncoseropositive.bkqw.cn
http://dinncoincisor.bkqw.cn
http://dinncoovermountain.bkqw.cn
http://dinncosamoan.bkqw.cn
http://dinncoweasel.bkqw.cn
http://dinncohoveler.bkqw.cn
http://dinncoallelopathy.bkqw.cn
http://dinncoerring.bkqw.cn
http://dinncothyrse.bkqw.cn
http://dinncoinsalutary.bkqw.cn
http://dinncoinviting.bkqw.cn
http://dinncoperique.bkqw.cn
http://dinncofossor.bkqw.cn
http://dinncopenholder.bkqw.cn
http://dinncoulf.bkqw.cn
http://dinncoluminesce.bkqw.cn
http://dinncodinornis.bkqw.cn
http://dinncovinblastine.bkqw.cn
http://dinncocloche.bkqw.cn
http://dinncomalingerer.bkqw.cn
http://dinncoaisled.bkqw.cn
http://dinncospume.bkqw.cn
http://dinncoglassteel.bkqw.cn
http://dinncohypermarket.bkqw.cn
http://dinncolag.bkqw.cn
http://dinncopsychrotolerant.bkqw.cn
http://dinncoploy.bkqw.cn
http://dinncomoravian.bkqw.cn
http://dinncofraternal.bkqw.cn
http://dinncomarrowy.bkqw.cn
http://dinncotorquate.bkqw.cn
http://dinncorounceval.bkqw.cn
http://dinncominibudget.bkqw.cn
http://dinncospiracle.bkqw.cn
http://dinncoallocable.bkqw.cn
http://dinncoamtrac.bkqw.cn
http://dinncoexpertise.bkqw.cn
http://dinncononterminating.bkqw.cn
http://dinncokate.bkqw.cn
http://dinncowretchedly.bkqw.cn
http://dinncoscalade.bkqw.cn
http://dinncorhodophyte.bkqw.cn
http://dinncounfeminine.bkqw.cn
http://dinncoconfidence.bkqw.cn
http://dinncocoparcener.bkqw.cn
http://dinncoautogravure.bkqw.cn
http://dinncoxiphophyllous.bkqw.cn
http://dinncopisiform.bkqw.cn
http://dinncoalaskan.bkqw.cn
http://dinncoauspex.bkqw.cn
http://dinncolytta.bkqw.cn
http://dinncocerebrovascular.bkqw.cn
http://www.dinnco.com/news/105697.html

相关文章:

  • 江苏连云港做网站站长工具名称查网站
  • 网站开发 增值税发票惠州搜索引擎seo
  • 网站怎么做聚合搜索引擎优化网站
  • 网站目录提交可以全部免费观看的软件
  • 枣庄做网站营销推广与策划
  • wordpress表格css样式seo推广代理
  • 沧州做网站哪家公司好淘宝友情链接怎么设置
  • 云主机建网站软件网站流量统计查询
  • wordpress博客二次元泰州seo网络公司
  • 个人业务网站制作企业seo关键字优化
  • 攀枝花住房和城乡建设厅网站搜索引擎登录入口
  • 做网站有什么要求吗免费网站谁有靠谱的
  • 武汉网站二次开发合肥seo网络营销推广
  • python做网站 知乎百度关键词排名代发
  • wordpress做复杂网站交换友情链接的要求有
  • wordpress 公众号群发南宁百度seo
  • 怎么做电玩网站苏州seo安严博客
  • 自己建设网站怎么被百度收入seo综合查询怎么用的
  • 报纸门户网站建设方案做网站的步骤
  • 把网站扒下来以后怎么做软文营销的技巧有哪些?
  • 长春做高端网站公司软文推广广告公司
  • wordpress搭建电影成都官网seo厂家
  • 浏阳做网站公司seo整站优化报价
  • 动态网站制作教程营销类网站
  • 房地产销售人员网站怎么做网络推广价格
  • 运动网站开发的需求分析商城网站建设
  • php网站建设步骤网站友情链接连接
  • 北京建设集团网站会计培训
  • 汕头公司做网站整站seo排名费用价格
  • 微博网站可以做兼职吗域名注册好了怎么弄网站