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

前端之家收集整理的这篇文章主要介绍了设计模式—合成/聚合复用原则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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


桥接模式的结构图

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

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

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

原文链接:https://www.f2er.com/javaschema/285890.html

猜你在找的设计模式相关文章