厦门理工学院软件工程设计模式期末复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式期末复习资料

统一建模语言:

1.P3

a) 1. 用例图

b) 2. 类图

2.P7 类之间的关系:

a)有什么关系

i.关联关系(能够判断出关联关系的种类: 6种)

ii.依赖关系

iii.泛化关系

iv.接口与实现关系

原则部分:

3.面向对象设计原则P26 有哪些原则(特别注意5星原则)

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

b)开闭原则(Open-close Principle, OCP)P28 细看

c)里氏代换原则(Liskov Substitution Principle, LSP)

d)依赖倒转原则(Dependency Inversion Principle, DIP)P34细看

e)接口隔离原则(Interface Segregation Principle, ISP)

f)合成复用原则(Composite Reuse Principle, CRP)

g)迪米特法则(Law of Demeter,LCD)

模式部分:了解的内容请自行翻阅该模式,主要知道模式是什么、他的组成角色、应用范围等等(稍微看下就行了)

1.抽象工厂模式(Abstract Factory):优缺点

a)优点:

i.抽象工厂模式隔离了具体类的生成,是的客户并不需要知道什么被创建。

ii.当一个产品族重的多个对象呗设计成一起工作时,他能够拨正客户端始终只使用同一个产品族中的对象。

iii.增加新的具体工厂和产品族很方便,无需修改已有系统,符合“开闭原则“。

2.单例模式(Singleton):什么是单例模式,怎么判断单例模式P134

a)什么是单例模式:动机与定义

b)怎么判断单例模式:P136

i.请自行翻阅模式分析、单例模式实例与解析:(看他的组成结构就拉到了)

3.组合模式:P181 能够选择和判断该模式:

看懂模式结构:

组合模式包含的角色:

具体实例:P186

4.享元模式:概念P53。

5.模版方法模式:了解,能够判断出即可。P400

a)该模式请自行看模式动机与定义后概览P405的实例与类(看的懂就行)。

6.职责链模式:了解,能够判断出即可。P262

a)该模式请自行看模式动机与定义后概览P265的实例与类(看的懂就行)。

7.中介者模式:了解,符合什么原则,优缺点。P319

a)了解:稍微看下。

b)符合什么原则:该模式符合“单一职责原则“。P320 模式动机中的

c)优缺点:P330

优点:

i.简化了对象之间的交互

ii.将各同事解耦

iii.减少子类生成

iv.对于复杂的对象之间的交互

缺点:

v.在具体中介者类中包含了同事之间的交互细节,可能会导致具体中介者类非常复杂,使得系统难以维护。

8.状态模式:判断P366

大题部分:

1.工厂方法模式和抽象工厂模式(重点):

a)属于的模式:创建型模式。

b)他们的对比、说明、对其的理解和看法。P76

i.对比:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。

工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式

可以创建多个

ii.工厂方法模式:

一个抽象产品类,可以派生出多个具体产品类。

一个抽象工厂类,可以派生出多个具体工厂类。

每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:

多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。

一个抽象工厂类,可以派生出多个具体工厂类。

每个具体工厂类可以创建多个具体产品类的实例。

c)类图的绘制。

d)具体翻阅该模式具体的类图和实例图以及结构模式的角色组成(细看、理解)。P78

e)优缺点:

i.工厂方法模式:

1.优点:向客户隐藏了产品类实例化的细节,用户无需关心产品对应的工

厂,无需关心创建细节。

2.优点:工厂可以自主确定创建何种产品对象,不需要知道对象的细节。

3.优点:再加入新产品时候,只要添加一个具体工厂和具体产品,无需修改

其他部分。具有很好的扩展性,完全符合开闭原则。

4.缺点:在添加新产品时候,需要编写新的具体产品类。

5.缺点:由于考虑到系统的可扩展性,需要引入抽象层增加了系统的抽象

性和理解难度,增加了系统的实现难度。

ii.抽象工厂模式:

1.优点:抽象工厂模式隔离了具体类的生成,客户端并不需要知道什么被

创建。

2.优点:当一个产品族重的多个对象被设计成一起工作时,他能保证客户

端只使用同一产品族中的对象。

3.优点:增加新的具体工厂和产品族很方便,无需修改现有的系统,符

合”开闭原则”

4.缺点:在添加新的产品对象的时候,难以扩展抽象工厂来生产新种类的

产品。

f)适用的场景。P87

i.工厂方法模式:

1.一个类不知道他所需要的对象的类。

2.一个类通过其子类来指定创建哪个对象。

3.将创建对象的任务委托给多个工厂子类中的某一个类,客户端无需关心

具体细节。

ii.抽象工厂模式:

1.一个系统不应该依赖于产品类实例如何被创建、组合和表达的细节。

2.系统中有多于一个的产品族,而每次只使用一个产品族。

3.属于同一个产品族的产品将在一起使用。

4.系统提供一个产品类的库。

2.命令模式

a)实例

i.具体翻阅该模式具体的类图和实例图以及结构模式的角色组成(细看、理解)。

P275

b)类图

c)应用的场景P284

i.系统需要将请求调用者和请求接受者解耦,使得调用者和接受者不直接交互

ii.系统需要在不同的时间指定请求,将请求排队和执行请求

iii.系统需要支持命令的撤销和恢复操作

iv.系统需要将一组操作组合在一起,即支持宏命令

3.迭代器模式:

a)实例

i.具体翻阅该模式具体的类图和实例图以及结构模式的角色组成(细看、理解)。

P303

b)类图

c)应用的场景P314

i.访问一个具体对象的内容而无需暴露它的内部表示

ii.需要为聚合对象提供多种遍历方式

iii.为遍历不同的聚合结构提供一个统一的接口

4.策略模式

a)商场打折案例(掌握) P399 Null

相关文档
最新文档