zoukankan      html  css  js  c++  java
  • 设计模式总结

    1、迪米特法则(Demeter Principle):

         理解:最少知道原则。类之间要尽量减少关联,降低类之间的耦合性。如需要关联,可通过中介类来转达。

         实现:外观(Facade)、中介(Mediator)

    2、开放-封闭原则():

         理解:对系统添加新的功能时不能影响到原有的功能。

         实现:a、多使用抽象类;b、多使用接口;

    3、依赖倒置原则(Dependence Inversion Principle):

         理解:要依赖于抽象,不要依赖于具体;即要针对接口编程,不要针对实现编程。

         实现:三层架构,针对接口分层

    4、接口隔离原则(Interface Segregation Principle):

         理解: 继承一个有很多方法的接口不如继承很多有一个方法的接口,这样不用去实现那些不需要的方法,可以选择自己需要的接口去继承。

         实现:

    5、里氏代换原则(Liskov Substitution Principle):

         理解:关于该不该使用继承上,如果在一个系统中,子类应该能够替换任何基类可以出现的地方,经过替换后代码还能正常工作,子类还可以扩展基类功能。这种情况下可以使用继承。

    6、合成复用原则(Composite Reuse Principle):

          理解:有两种办法可以实现代码复用:一、合成聚合 ;  二、继承。  

          我们应该尽量使用 合成聚合 来复用代码,除非满足下面几个条件才可以使用继承。  

          a、类满足is-A条件,而不是has-A ;

          b、类永远不会变成另一个类的子类,如果不能肯定以后不会变成另一类的子类,就不要用继承(因为不能多继承);

          c 、类可以扩展超类,但不能置换或注销掉超类;

    1.创建型模式

    因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:

    简单工厂模式(Simple Factory);

    工厂方法模式(Factory Method);

    抽象工厂模式(Abstract Factory);

    创建者模式(Builder);

    原型模式(Prototype);

    单例模式(Singleton)。

    说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。

    2.结构型模式

    在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

    外观模式(Facade);

    适配器模式(Adapter);

    代理模式(Proxy);

    装饰模式(Decorator);

    桥模式(Bridge);

    组合模式(Composite);

    享元模式(Flyweight)。

    3.行为型模式

    在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

    模板方法模式(Template Method);

    观察者模式(Observer);

    状态模式(State);

    策略模式(Strategy);

    职责链模式(Chain of Responsibility);

    命令模式(Command);

    访问者模式(Visitor);

    调停者模式(Mediator);

    备忘录模式(Memento);

    迭代器模式(Iterator);

    解释器模式(Interpreter)。

  • 相关阅读:
    BZOJ3252攻略——长链剖分+贪心
    BZOJ3522[Poi2014]Hotel——树形DP
    BZOJ4012[HNOI2015]开店——树链剖分+可持久化线段树/动态点分治+vector
    BZOJ3626[LNOI2014]LCA——树链剖分+线段树
    BZOJ2157旅游——树链剖分+线段树
    BZOJ3531[Sdoi2014]旅行——树链剖分+线段树
    BZOJ2243[SDOI2011]染色——树链剖分+线段树
    zookeeper(1)初识zookeeper
    任督二脉
    RPC框架之RMI
  • 原文地址:https://www.cnblogs.com/kavilee/p/2361482.html
Copyright © 2011-2022 走看看