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

网站建设中 目录开发网站软件

网站建设中 目录,开发网站软件,百度商桥置入网站,大连搜狗推广前言 桥接模式是一种设计模式,它将抽象与实现分离,使它们可以独立变化。这种模式涉及到一个接口作为桥梁,使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离,…

前言

        桥接模式是一种设计模式,它将抽象与实现分离,使它们可以独立变化。这种模式涉及到一个接口作为桥梁,使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。

        桥接模式的主要目的是通过将实现和抽象分离,使两者可以独立地变化。这种类型的设计模式属于结构型模式,它通过提供抽象和实现之间的桥接结构来实现这一点。

        例如,一个电视遥控器,它的基本功能(开/关,音量控制等)是抽象的,而这些功能可以通过不同的实现方式(不同品牌的电视机)来实现。如果没有桥接模式,每个品牌的电视机都需要一个专门的遥控器。但有了桥接模式,就可以有一个通用的遥控器,通过桥接模式来控制不同品牌的电视机。

桥接(Bridge)模式包含以下主要角色:

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

代码案例 

在如下案例中,演示了使用桥接模式实现宠物店中,动物与颜色的组合,如果使用普通方式来写这个案例,我们可能需要写 m(种类) × n(颜色) 个类,而使用了桥接模式,我们只需要写m(种类) + n(颜色)个类,然后用他们来组合成不同的需求

Animal接口

实现创建第一个动物的接口

public interface IAnimal
{void animal(string colour);
}

实现类狗

public class Dog:IAnimal
{public void animal(string colour){Console.WriteLine("这只狗的颜色是:"+colour);}
}

实现类猫,如果后续需要更多的种类,只需要添加实现类

public class Cat:IAnimal
{public void animal(string colour){Console.WriteLine("这只猫的颜色是:"+colour);}
}

颜色选择器

将动物的种类与颜色进行组合就是在这个类中实现,在颜色选择器中,声明了一个animal,然后设置了一个构造函数,传入一个animal类进来,并且写了一个抽象方法,用来打印动物。

public abstract class ColourSelect
{protected IAnimal Animal;protected ColourSelect(IAnimal animal){Animal = animal;}public abstract void outAnimal(string colour);}

白色

白色继承颜色选择器,将构造函数的参数传递给父类,并且重写了outAnimal方法,在里面调用了animal,其实就是我们上面一开始写的,输出动物+颜色

public class black : ColourSelect
{public black(IAnimal animal) : base(animal){}public override void outAnimal(string colour){Animal.animal(colour);}
}

 黑色

同上

public class white : ColourSelect
{public white(IAnimal animal) : base(animal){}public override void outAnimal(string colour){Animal.animal(colour);}
}

测试结果

new一个继承颜色选择器的黑色类,传入一个cat类,因此black.outAnimal即是调用了cat类的animal方法,并且携带一个参数黑色,因此通过Console.WriteLine("这只猫的颜色是:"+colour);打印这只猫的颜色是:黑色,下面的白狗例子同上。

桥接模式优点

         桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。 如:如果现在还有一种视频文件类型wmv,我们只需要再定义一个类实现VideoFile接口即可, 其他类不需要发生变化。 实现细节对客户透明

使用场景

        当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。 当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。 当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。避免在两个层次之间 建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。

http://www.yayakq.cn/news/978063/

相关文章:

  • wordpress网站合并快递网站模板
  • 上海网站关键词排名优化报价有哪些可以做兼职翻译的网站
  • 外贸网站建设盲区企业怎么建立网站
  • 河源网站制作1993seo网页版微信暂时无法登陆
  • 网页制作与网站建设的发展趋势设想建设彩票网站犯法吗
  • dedecms做图库网站长春网站建设工作室
  • 公司移动网站建设手机能看禁止网站的浏览器
  • 天津网站营销seo电话网站维护工作是做啥
  • 新媒体网站建设方案做响应式网站用什么框架
  • 太原北京网站建设公司成都网站制作怎么收费
  • 为客户创建网站必须百度地图推广一年多少钱
  • 做网站要怎样加盟欧普wordpress 读取excel
  • 民政局网站建设工作总结一个虚拟主机做2个网站吗
  • 企业网站的优化为什么百度搜索不到我的网站
  • 做游戏网站公司网站建设服务哪个便宜啊
  • 营销型网站建设口碑好网站权重对优化的作用
  • 网站开发环境有哪些php搜阅网站建设
  • 如何做网站走查wordpress动态标签
  • 关于网站建设投稿信用网站建设工作总结
  • 南通市城乡建设局网站wordpress读取新闻
  • 九里徐州网站开发公关团队
  • 做网站用什么代码编写网站服务器租用平台
  • 有什么那个网站让别人做网站要注意什么6
  • 建设工程网站单位名单大家都用哪个网站做读书笔记
  • 深圳便宜网站建设网站建设思路方向
  • 做网站推广需要什么专业平台网站建设有哪些方面
  • 寻找网站开发wordpress如何发布文件夹
  • 网站怎样自动文字排版制作主页的软件
  • php自适应网站开发wordpress收费主题激活
  • 秦皇岛高端网站设计成都交易网站建设