桥接模式——1.分类2.找联系3.继承

简介: 桥接模式——1.分类2.找联系3.继承

 桥接模式(Bridge)定义:将抽象部分与它的显示部分分离,使它们都可以独立地变化。

 桥接模式的目的是松耦合,另外也用到了合成/聚合复用原则(尽量使用合成/聚合,尽量不要使用继承)。因为继承是一种强耦合关系,所以我们优先考虑把类分好,然后找到类之间的合成/聚合关系,到最后再使用继承。

Implementor类:

    abstract  class Implementor
    {
        public abstract void Operation();//抽象方法Operation()
    }

子类:

    class ConcreteImplementorA:Implementor
    {
        public override void Operation()//重写
        {
            Console.WriteLine("具体实现A的方法执行");
        }
    }
    class ConcreteImplementorB : Implementor
    {
        public override void Operation()//重写
        {
            Console.WriteLine("具体实现B的方法执行");
        }
    }

Abstraction类:

    class Abstraction
    {
        protected Implementor implementor;//实例化父类
        public void SetImplementor(Implementor  implementor)//Implementor类作为Abstraction类的方法参数
        {
            this.implementor = implementor;
        }
        public virtual void Operation()//虚方法
        {
            implementor.Operation();
        }
    }

RefinedAbstraction类

    class RefinedAbstraction:Abstraction
    {
        public override void Operation()//重写
        {
            implementor .Operation();
        }
    }

客户端:

        static void Main(string[] args)
        {
            Abstraction ab = new RefinedAbstraction();//父类的实现指向子类的实例
            //实例化ConcreteImplementorA类的对象,通过方法SetImplementor()把值给Implementor类实例化的对象implementor
            ab.SetImplementor(new ConcreteImplementorA ());//这里也是里式转换
            ab.Operation();//执行Implementor类的对象implementor的方法Operation(),实际是执行ConcreteImplementorA类的方法Operation(),显示“实现具体的方法A”
            ab.SetImplementor(new ConcreteImplementorB());//同样操作
            ab.Operation();
            Console.Read();
        }
    }
相关文章
|
3月前
|
C++
c++继承层次结构实践
这篇文章通过多个示例代码,讲解了C++中继承层次结构的实践应用,包括多态、抽象类引用、基类调用派生类函数,以及基类指针引用派生类对象的情况,并提供了相关的参考链接。
|
4月前
|
设计模式
|
7月前
|
设计模式 存储 Java
【类图、类与类的关系、多态】
学习Java面向对象,掌握UML类图绘制,包括14种图形,使用PowerDesigner演示类图创建。理解类与类的关系,如继承、实现、依赖、关联、聚合、组合,以及`instanceof`关键字。学习简单工厂设计模式,实现多态,理解其在面试和设计原则中的重要性。通过实例操作,如String类常用方法、汽车与4S店案例,加深对面向对象概念的理解。最后,探讨面向对象设计原则,如单一职责、开闭原则、里氏替换原则、依赖倒置、接口隔离、迪米特法则和组合/聚合复用原则。
96 1
|
6月前
面向对象三大特征——封装,继承
面向对象三大特征——封装,继承
|
7月前
|
定位技术 计算机视觉 Windows
类间两种关系:继承、 组合
类间两种关系:继承、 组合
40 0
|
7月前
|
设计模式 Java 数据库连接
Java设计模式--简单工厂、工厂方法和抽象工厂之间的区别
设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。那么三者有什么区别呢?
168 1
Java设计模式--简单工厂、工厂方法和抽象工厂之间的区别
|
设计模式 存储 Java
JAVA设计模式9:桥接模式,将抽象部分与实现部分分离
JAVA设计模式9:桥接模式,将抽象部分与实现部分分离
104 0
|
设计模式 存储 Java
JAVA设计模式11:组合模式,以统一的方式处理单个对象和组合对象
JAVA设计模式11:组合模式,以统一的方式处理单个对象和组合对象
173 0
|
设计模式 数据可视化 uml
【设计模式学习笔记】类图:类与类之间的关系
【设计模式学习笔记】类图:类与类之间的关系
271 0
【设计模式学习笔记】类图:类与类之间的关系