关于设计模式的思考

1.为什么会出现设计模式

我们将一个功能模块,使用OO来抽象为不同的类,然后这些类协作完成功能。类协作的时候就产生了类与类之间的耦合。类和类的协作产生耦合其实就是new导致的。

例如:

class A{

    public void method(){

        B b = new B();

        C c = new C();

        D d = new D();

        b.doB();

        c.doC();

        d.DoD();

    }

}

如上图所示为了实现类A的method方法,就依赖与类B,C,D,考虑这几个类如果发生变化,则,这里的代码也要变化。所以这里就出现了一种紧耦合。其实只要一出现new则此处的代码就依赖与这个实现了。所以要解耦合,就是要消除这些 new 带来的紧耦合。所谓设计模式,其实就是在不同的耦合场景下,如何将new给去掉的一种方式。例如:创建形模式解决的是new带来的对象耦合问题。再一个设计模式的一个目的就是对重复代码进行重构,例如模板方法模式(行为型模式),重复代码提升为模板方法。设计模式还有一个目的就是实现代码复用:例如适配器模式,就可以实现复用已有的代码,代理模式:增强已有代码的作用。等等。。。

原文地址:https://www.cnblogs.com/a-ray-of-sunshine/p/4658732.html