1. 设计模式开篇

一.设计模式

1.设计模式介绍

  • 软件工程中, 设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案 

2.设计模式的目的

  • 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)

  • 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)

  • 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)

  • 重用性 (即:相同功能的代码,不用多次编写

  • 使程序呈现高内聚, 低耦合的特性

3.设计模式七个常用的原则

  1. 单一职责原则:一个类应该只负责一项职责 (拆分类)

  2. 接口隔离原则:不要依赖不需要的接口(拆分接口)

  3. 依赖倒置原则:细节依赖于抽象(面向接口编程)

    • 可以通过参数传递、构造方法和setter方法进行依赖传递

  4. 里氏替换原则:能使用基类的地方都可以使用子类(子类不要重写父类方法)

    • 继承增加了类的耦合性 ,我们可以通过聚合,组合或依赖来降低耦合性

  5. 开闭原则:对扩展开放,对修改关闭(去扩展新的功能,不要去修改原有功能)

  6. 迪米特法则:最少知道原则(只与直接朋友通信减少耦合 )

    • 直接朋友:成员变量,方法参数,方法返回值中的类

    • 间接对象:局部变量中的类

    • 核心:降低类之间的耦合,每个类都减少了不必要的依赖

  7. 合成复用原则:使用组合或聚合而不是继承(解耦)

4. 设计原则的核心思想

  1. 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。

  2. 针对接口编程,而不是针对实现编程。

  3. 为了交互对象之间的松耦合设计而努力 。

二.UML

1.UML介绍

  • UML:统一建模语言,本身就是一套符号用于软件系统的分析与设计。

2.UML图分类

  • 用例图

  • 静态结构图:类图、对象图、包图、组件图、部署图

  • 动态结构图:交互图(时序图与协作图)、状态图、活动图

3.UML类图

  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合

  •  

(1)依赖

  • 图标:虚线尖箭头

  • 概念:类中用到了对方

    • 类中使用到

    • 类的成员属性

    • 方法参数类型

    • 方法返回类型

    • 方法中使用到

  • 使用方在尾部,被用方在头部

(2)泛化

  • 图标:实线三角形箭头

  • 概念:继承关系

  • 使用方在尾部,被用方在头部

(3)实现

  • 图标:虚线三角形箭头

  • 概念:接口实现关系

  • 使用方在尾部,被用方在头部

(4)关联

  • 图标:实线

  • 概念:类的成员属性用到另一个类(依赖的特例)

(5)聚合

  • 图标:空心菱形实线

  • 概念:类的成员属性用到另一个类但是没有初始化(关联的特例)

  • 使用方在菱形处,被用方在直线处

(6)组合

  • 图标:实心菱形实线

  • 概念:类的成员属性用到另一个类并且初始化了(关联的特例)

  • 使用方在菱形处,被用方在直线处

三.设计模式类型

  • 经典的设计模式分为三种类型,共23种。

  • 还有一些额外的设计模式

1.创建型模式

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

2.结构型模式

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

3.行为型模式:

  • 模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解析器模式(Interpreter模式)、状态模式、策略模式、责任链模式

猜你喜欢

转载自www.cnblogs.com/zhihaospace/p/12452112.html