• 设计模式概述


    一、设计模式概念与意义

      设计模式是一套代码设计经验的总结,为的是代码重用,提高代码可读性。每种模式在现实中都能找到相对应的原理,符合面向对象的原则,把现实中的事物抽象成虚拟世界的对象。

      同时,在开发大型软件时,很多时候需要一个框架,将软件分成一个个功能模块,以便多人的分工合作,因此框架设计中经常要使用设计模式。所以,学习设计模式有助于对框架结构的理解,以对整个代码结构有清晰的认识,缩短软件开发周期。

    二、设计原则

    1.单一职责原则(Single Responsibility Principle)

    一个类应该只有一个引起它变化的原因。

    2.开闭原则(Open Close Principle)

    对扩展开放,对修改关闭。把抽象接口与实现相分离。

    3.里氏转换原则(Liskov Substitution Principle)

    任何基类可以出现的地方,子类一定可以出现。对OCP的补充,OCP的关键是抽象化,而基类与子类的继承关系就是抽象化的具体实现。

    4.依赖倒转原则(Dependence Inversion Principle)

    OCP的基础,针对接口编程,依赖于抽象而不依赖于具体。

    5.接口隔离原则(Interface Segregation Principle)

    使用多个专门的接口比使用单一的总接口要好。

    6.迪米特法则(Demeter Principle)

    一个对象应当对其它对象尽可能少地发生相互作用,使系统功能相对独立。

    7.合成/聚合复用原则(Composite/Aggregate Reuse Principle)

    尽量使用合成/聚合,而不是使用继承。

    三、设计模式的类型

    三类设计模式:

    创建型模式:提供在创建对象时隐藏逻辑的方法,不使用new 运算符直接实例化对象。

    1.工厂模式(Factory Pattern)

    2.抽象工厂模式(Abstract Factory Pattern)

    3.单例模式(Singleton Pattern)

    4.建造者模式(Builder Pattern)

    5.原型模式(Prototype Pattern)

    结构型模式:关注类和对象的组合。继承概念用来组合接口和定义组合对象获得新功能。

    1.适配器模式(Adapter Pattern)

    2.桥接模式(Bridge Pattern)

    3.过滤器模式(Filter Criteria Pattern)

    4.组合模式(Composite Pattern)

    5.装饰器模式(Decorator Pattern)

    6.外观模式(Facade Pattern)

    7.享元模式(Flyweight Pattern)

    8.代理模式(Proxy Pattern)

    行为型模式:关注对象之间的通信

    1.责任链模式(Chain of Responsibility Pattern)

    2.命令模式(Command Pattern)

    3.解释器模式(Interpreter Pattern)

    4.迭代器模式(Iterator Pattern)

    5.中介者模式(Mediator Pattern)

    6.备忘录模式(Memento Pattern)

    7.观察者模式(Observer Pattern)

    8.状态模式(State Pattern)

    9.空对象模式(Null Object Pattern)

    10.策略模式(Strategy Pattern)

    11.模版模式(Template Pattern)

    12.访问者模式(Visitor Pattern)

  • 相关阅读:
    python3笔记二十二:正则表达式之函数
    python3笔记二十一:时间操作datetime和calendar
    python3笔记二十:时间操作time
    python3笔记十七:python文件读写
    Spring常用注解
    Pytorch实现卷积神经网络CNN
    Keras实现autoencoder
    Keras实现LSTM
    TensorFlow实现CNN
    Recurrent Neural Networks vs LSTM
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5248348.html
Copyright © 2020-2023  润新知