zoukankan      html  css  js  c++  java
  • 设计模式概述

    一、设计模式概念与意义

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

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

    二、设计原则

    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)

  • 相关阅读:
    Leetcode53_Spiral_Matrix
    leetcode 分类
    bash 脚本
    关闭占用端口
    blue bossa
    判断对称二叉树
    This server is in the failed servers list: localhost/127.0.0.1:16000 启动hbase api调用错误
    在cikuapi.com上抓取相关词
    那些天使用AWS填过的坑和注意事项
    一百个人的十年-读后感
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5248348.html
Copyright © 2011-2022 走看看