设计模式概述

  • PBP 基于过程 process-based programming
  • OBP 基于对象 object-based programming
  • OOP 面向对象 object-oriented programming

OOP三大特性

  • 封装
  • 继承
  • 多态

OOP七大原则

一、单一职责原则(Single-Responsibility Principle,SRP)

类的职责要单一,不能将太多的职责放在一个类中(高内聚、低耦合)

二、开闭原则(Open-Close Principal,OCP):

对扩展开放,对修改关闭(设计模式的核心原则是)

三、依赖倒置原则(Dependecy-Inversion Principle,DIP)

要依赖抽象,而不要依赖具体的实现

四、里氏替换原则(Liskov-Substituion Principle,LSP)

任何基类可以出现的地方,子类也可以出现

五、迪米特法则(Law of Demeter,LoD or LKP)

系统中的类,尽量不要与其他类互相作用,减少类之间的耦合度

定义:又叫最少知识原则(Least Knowledge Principle或简写为LKP)几种形式定义:

(1) 不要和“陌生人”说话。英文定义为:Don't talk to strangers.

(2) 只与你的直接朋友通信。英文定义为:Talk only to your immediate friends.

六、接口隔离原则(Interface-Segregation Principle,ISP)

客户端不应该依赖那些它不需要的接口。(这个法则与迪米特法则是相通的)

七、组合/聚合复用原则(Composite/Aggregate ReusePrinciple,CARP or CRP)

  • 要尽量使用对象组合,而不是继承关系达到软件复用的目的
  • 其中合成/聚合复用原则又可以细分为二种
  • 聚合(Aggregation) 关系是关联关系的一种,是弱的关联关系。比如乐队(主唱,吉他手,贝斯手)
  • 组合(Composition) 关系是关联关系的一种,是强的关联关系。比如每名乐手(灵魂、身体)

创建型模式

共五种:

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

结构型模式

共七种:

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

行为型模式

共十一种:

  • 策略模式
  • 模板方法模式
  • 观察者模式
  • 迭代器模式
  • 责任链模式
  • 命令模式
  • 备忘录模式
  • 状态模式
  • 访问者模式
  • 中介者模式
  • 解释器模式
上一篇:StarUML的9种图 下一篇:七大设计原则