设计模式—合成/聚合复用原则

    之前就了解到继承复用有一定的缺点:比如如果基类发生了改变,那么派生类的的实现就不得不发生改变;而且从超类继承而来的实现是静态的,不可能在运行时发生改变,因此它的灵活性差并最终会限制复用性。

    现在学习了合成/聚合复用原则就解决了继承复用的缺点。

    下面是合成/聚合复用原则的思维导图:


      桥接模式的结构图

     

  桥接模式的结构图的基本代码

        //Implementor类
        abstract class Implementor
        {
            public abstract void Operation();
        }

        //concreteImplementorA和concreteImplementorB等派生类
        class concreteImplementorA : Implementor
        {

            public override void Operation()
            {
                Console.WriteLine("具体实现A的方法执行。");
            }
        }
        class concreteImplementorB : Implementor
        {

            public override void Operation()
            {
                Console.WriteLine("具体实现B的方法执行。");
            }
        }

       //Abstaction类
        class Abstraction
        {
            protected Implementor implementor;

            public void SetImplementor(Implementor implementor)
            {
                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();
            ab.SetImplementor(new concreteImplementorA());
            ab.Operation();

            ab.SetImplementor(new concreteImplementorB());
            ab.Operation();

            Console.Read();
        }
      桥接模式的是说将抽象部分与实现部分分离,其实可以理解实现系统有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。

     只要深入的理解设计原则,很多设计模式其实就是原则的应用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值