美文网首页
设计模式- 桥接模式

设计模式- 桥接模式

作者: Mitchell | 来源:发表于2016-08-28 14:04 被阅读73次
  • 为什么需要桥接模式?
    对象的关系是在编译时就定义好了,所以无法再运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化,当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。

  • 合成/聚合复用原则
    尽量使用合成/聚合,尽量不要使用类继承。

    • 聚合:聚合表示一种弱的“拥有”关系,体现的是 A 对象可以包含 B 对象,但B 对象不是 A 对象的一部分。
    • 合成,强的‘拥有‘关系,体现了严格的部分和整体的关系,部分和整体的声明周期是一样。
  • 举例

    • 问题:
      手机品牌:手机品牌 A,手机品牌 B。
      手机软件:游戏 ,通讯录。
      现在想要在两个手机上分别安装游戏和通讯录。
    • 分析:手机品牌作为抽象类 A,软件做为抽象类 B,手机品牌和手机软件之间属于聚合关系,手机品牌包含手机软件,但是手机软件并不属于手机品牌。


      桥接.png
  • 桥接模式
    桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立的变化。
    抽象与实现分离是指抽象类和它的派生类用来实现自己的对象。让手机既可以按照品牌来分类也可以按照功能来分分类。


    屏幕快照 2016-08-28 下午1.57.08.png
  • 代码实现

abstract class Implementor
{
    public abstract void Operation();
}
class ConcreteImplentorA:Implementor
{
    public override void Operation()
    {
        Console.WriteLine("A 方法执行");
    }
}
class ConcreteImplentorB:Implementor
{

    public override void Operation()
    {
        Console.WriteLine("B 方法执行");
    }
}
class Abstraction
{
    protected Implementor implementor;
    public void SetImplementor(Implementor implementor)
    {
        this.implementor = implementor;
    }
    public virtual void Operation()
    {
        implementor.Operation();
    }
}
class RefinedAbstraction:Abstraction
{
    public override void Operation()
    {
        implementor.Operation();
    }
}
//客户端实现
static void Main(string[] args){
    Abstraction ab = new Abstraction();
    ab.Operation();
    ab.SetImplementor(new ConcreteImplentorA);
    ab.Operation();
    ab.SetImplementor(new ConcreteImplentorB);
    ab.Operation();
}

相关文章

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

  • Android设计模式——桥接模式(七大结构型)

    1.桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是七大结构型设计模式之一。 2....

  • 2、桥接模式(结构型)

    第一次接触桥接模式是在刷面试题时,遇到问jdbc主要用到的设计模式是?桥接模式。 桥接模式(Bridge):将抽象...

  • Java设计模式<桥接模式>

    Java设计模式<桥接模式> 意图 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将...

网友评论

      本文标题:设计模式- 桥接模式

      本文链接:https://www.haomeiwen.com/subject/scgtettx.html