加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 23:15:42 所属栏目:百科 来源:网络整理
导读:之前就了解到继承复用有一定的缺点:比如如果基类发生了改变,那么派生类的的实现就不得不发生改变;而且从超类继承而来的实现是静态的,不可能在运行时发生改变,因此它的灵活性差并最终会限制复用性。 现在学习了合成/聚合复用原则就解决了继承复用的缺点

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

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

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


桥接模式的结构图

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读