设计模式(一) 基本概念

来源:互联网 发布:在淘宝上开网店程序 编辑:程序博客网 时间:2024/05/01 11:29

一、设计模式概述

GoF 23 种设计模式,加上简单工厂模式,共24种。

 

使用频率最高:

创建型的有工厂方法模式、抽象工厂模式、单例模式

结构型的有外观模式、适配器模式、代理模式

行为型的有迭代器模式、命令模式、策略模式

 

学习每个设计模式都应掌握:

这个设计模式的意图是什么,它要解决的什么问题,什么时候使用它(问题、目的);

它是如何解决问题的(解决方案),结构图和关键代码,能联系至少它的两个应用实例,一个生活中的一个软件中的;

这个模式的效果如何,优缺点是什么,在使用时应注意什么(效果)

 

二、类和类的UML图示

1. UML类图:

(1)类名

(2)属性:成员变量    表示方法:    可见性 名称:类型 [=默认值]

public + , private - , protected #

(3)类的成员函数     可见性 名称(参数列表)[ : 返回类型]

 

2. 关联关系(实线)

一个类的对象作为另一个类的变量:类A >B A类含有B类的对象作为变量。

1)双向关联(—):顾客购买商品并拥有商品,卖出的商品与某个顾客相关联,顾客类与售出品类有双向关联;

2)单向关联(—>):顾客都有地址

自关联(实线箭头指向自己):节点类型

3)多重性关联:(0, 1, m, *) .. (1, n, *)  *表示任意,m, n表示最多m, n个对象

4)聚合关系:整体与部分。成员对象是整体对象的一部分,但成员对象可以脱离整体对象独立存在。

带空心菱形的实线直线箭头 ◇—>   汽车类◇—>汽车发动机类

5)组合关系

也表示整体与部分关系,但是整体对象可以控制成员对象的生命周期,一旦整体不存在,成员也将不存在。带实心菱形的实线直线箭头: 头和嘴巴

 

3. 依赖关系:特定事物的改变可能会影响到使用该事物的其他事物。

带箭头的虚线:从依赖的一方指向被依赖的一方。

4. 泛化关系:继承关系,父类与子类

带空心箭头的直线,从子类指向超类(或基类)

5. 接口与实现关系

带空心三角形的虚线,从具体实现的一方指向抽象接口

 

三、面向对象设计原则

简单概括,7种常见的面向对象设计原则

设计原则

定义

使用频率

单一职责原则 SRP

一个类只负责一个功能领域的相应职责

四星

开闭原则 OCP

软件实体应对扩展开放,对修改关闭

五星

里氏代换原则 LSP

所有引用基类对象的地方能够透明地使用其子类的对象

五星

依赖倒转原则 DIP

抽象不应该依赖于细节,细节应该依赖于抽象

五星

接口隔离原则 ISP

使用多个专门的接口,而不使用单一的总接口

两星

合成复用原则 CRP

尽量使用对象组合,而不是继承来达到复用的目的

四星

迪米特法则 LoD

一个软件实体应当尽可能少地与其他实体发生相互作用

三星

 

0 0
原创粉丝点击