设计模式概述

来源:互联网 发布:阿铭linux 视频 云盘 编辑:程序博客网 时间:2024/06/06 18:12

设计模式概述

设计模式是一种可复用面向对象软件的基础,通过复用已经公认的设计,我们能够在解决问题时避免前人所犯的种种错误,在他们的经验上获益,不必再为重复出现的问题再次设计解决方案。

本系列文章试图系统的学习设计模式,希望在以后的程序生涯中不断的去领会设计模式的精髓,设计出优美、可复用的软件系统。

设计模式分类

按照GOF的分类,设计模式可分为创建型、结构型和行为型模式。本系列文章将从这三种分类分别去学习各个设计模式,力争表述自己的见解,以保证对设计模式学习的效果。

创建型

创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。

  • 简单工厂模式
  • 抽象工厂模式
  • 工厂方法模式
  • 单例模式
  • 建造者模式
  • 原型模式

结构型

结构型模式涉及到如何组合类和对象以获得更大的结构。

  • 适配器模式
  • 装饰模式
  • 桥接模式
  • 组合模式
  • 享元模式
  • 代理模式
  • 外观模式

行为型

行为型模式涉及到算法和对象间职责的分配,行为模式不仅描述对象和类的模式,还描述它们之间的通信模式。

  • 观察者模式
  • 模板方法模式
  • 命令模式
  • 状态模式
  • 职责链模式
  • 解释器模式
  • 中介者模式
  • 访问者模式
  • 策略模式
  • 备忘录模式
  • 迭代器模式

设计模式的六大原则

开闭原则(Open Close Principle)

对扩展开放、对修改关闭,在程序需要进行修改的时候不能去修改原有的代码。简而言之,我们需要使用接口和抽象类,使得程序的扩展性好,易于维护。

里氏替换原则(Liskov Substitution Principle)

里氏替换原则是面向对象编程的基本原则之一,它的意思是说任何父类出现的地方子类都可以替换之。只有当子类可以代替父类且软件的功能不受影响时,父类才能真正被复用,子类才能关注于更具体的功能。

依赖倒转原则(Dependence Inversion Principle)

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

接口隔离原则(Interface Segregation Principle)

针对多个接口而不是只针对一个接口编程,每个接口完成的功能小而美而不是大而全,接口功能做到高内聚、低耦合的效果。

迪米特法则-最少知道原则(Demeter Principle)

一个对象尽量少与其他对象发生关联,各个模块尽量独立。

合成复用原则(Composite Reuse Principle)

尽量使用合成/聚合的方式,而不用继承方式。

接下来将分别从创建型、结构型和行为型依次介绍各个设计模式。