设计模式入门篇

一、什么是设计模式

“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”
——Christopher Alexander

尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式。

受Alexander的启发,Erich Gamma、Richard Helm、Ralph Johnson、Jshn Vlissides四人(人称Gang Of Four,GOF)总结了23种常见的软件开发设计模式

这23种设计模式并不描述新的或未经证实的设计,而是经过验证,用于解决在特定环境下特定问题的解决方案。

1.1 设计模式四要素

  • 模式名称:助记名,便于记忆和交流
  • 问题:交代特定的问题场景
  • 解决方案:确定了所包含的类和实例,它们的角色、协作方式以及职责分配
  • 效果:使用此解决方案之后所带来的最终效果

1.2 为什么需要学习设计模式

  • 1.设计模式已成为软件开发行业的“标准词汇”
  • 2.个人技术提高的必备知识
  • 3.无须重复造轮子

二、设计模式的分类

GOF将设计模式分为23种设计模式,其中分为三大类

2.1 创建型模式

抽象了对象实例化的过程,用来帮助创建对象的实例

2.2 结构型模式

描述如何组合类和对象以获取更大的结构

2.3 行为型模式

描述算法和对象间的职责分配

2.4 设计模式总览

设计模式入门篇_第1张图片
设计模式.png

上面标红色五角星的为必须理解透彻的设计模式

三、UML类图

为了更好的学习和理解设计模式,学习设计模式之前,需要掌握UML类图

3.1 UML类图

UML,全称:统一建模语言(Unified Modeling Language)它是让系统可视化的表现手段。

UML类图主要用来表示类、接口、实例之间相互的静态关系。本系列使用Java语言作为代码演示,约定Java的字段属性与UML的属性(Attribute)对等,Java的方法与UML的操作(Operation)对等。

设计模式入门篇_第2张图片
UML类图表示

3.2 UML类图几种关系

设计模式入门篇_第3张图片
UML中四种重要关系.png

1.依赖关系(dependency)

它描述一个对象在运行期会使用到另一个对象的关系。依赖是一种临时性的关系,通常都是在运行期间产生,并随着运行场景的不同,依赖关系也可能发生变化

比如人和船这两个对象,如果场景是:开动轮船,那么船依赖于人。如果场景是:渡海,那么人依赖于船

设计模式入门篇_第4张图片
依赖关系

2.泛化(generalization)

说明两个对象之间的继承关系。被继承的类称为父类,继承的类称为子类

设计模式入门篇_第5张图片
继承关系

3.实现(realization)

描述在一个类中描述,具体实现由另一个类在实现细节

设计模式入门篇_第6张图片
实现关系

4.关联(association)

描述了一个事物对象与另一个事物对象相关联。其中关联又具体分为:聚合关系、组合关系。

聚合关系:表达整体由部分构成。例如:一个班级由多个学生构成。

设计模式入门篇_第7张图片
聚合关系

组合关系:表达整体拥有部,是一种强依赖的聚合关系。例如:人体是由头部和眼睛组成.

设计模式入门篇_第8张图片
组合关系

你可能感兴趣的:(设计模式入门篇)