厦门理工学院软件工程设计模式期末复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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