UML学习笔记——细化阶段迭代二三

Elaboration细化迭代二

chapter26 GoF设计模式

1、适配器(GoF)

2、Factory工厂模式

问题: 有特殊考虑(例如存在复杂创建逻辑、为了改良内聚而 分 离创建职责等)时,应该由谁来负责创建对象?

创建称为工厂的纯虚构对象来处理这些创建职责

通常用单实例类来访问工厂模式

3、Singleton单实例类

问题: 对象需要全局可见性和单点访问(访问的都是同一个对象)

对类定义静态方法以返回单实例

例如工厂类中定义一个静态方法,返回自己的唯一实例,那么其他类可以方便地通过调用这个方法获得工厂对象的引用

一般使用缓式初始化即调用获取某个对象的方法时才创建这个对象,而预初始化是在调用前就已经创建了这个对象(静态成员),预先创建可能会占用资源,并且有的对象的创建逻辑复杂

4、Strategy策略

问题: 何设计变化但相关的算法或政策?如何设计才能使这些算法或政策具有可变更的能力?

在单独的类中分别定义每种算法/策略,并使其拥有共同的接口

策略是基于多态的,对变化的算法/政策提供了防止变异,通常由工厂创建

5、Composite组合

问题: 何能够像处理非组合(原子)对象一样,处理一组对象 或 具有组合结构的对象呢?

定义组合和原子对象的类,使他们实现共同的接口

基于多态提供防止变异

6、Facade外观

问题: 对一组完全不同的实现或接口,需要公共、统一的接口。可能会与子系统内部的大量事物产生耦合,或者子系统的实现可能会改变。

对于子系统定义的唯一接触点——使用外观对象封装子系统。该外观对象提供唯一和统一的接口,并负责与子系统构件进行协助。

外观是“前端”对象,是子系统服务的唯一入口;子系统的实现和其他构件是私有的,并不对外部构件可见。外观对子系统实现的变化提供防止变异。

书上讲的不清不楚的,但我感觉这个其实像api

7、Observer观察者

问题: 同类型的订阅者对象关注于发布者对象的状态变化或事件,并且想要在发布者产生事件时以自己独特的方式作出反应。此外,发布者想要保持与订阅者的低耦合。如何对此进行设计呢?

定义“订阅者”或“监听器”接口,订阅者实现此接口。发布者可以动态注册关注某事件的订阅者,并在事件发生时通知他们。

View对象和Model对象都有可能变化,但它们不直接耦合,只要接口不变彼此的改变就不容易影响到对方;其实像MVVM的思想,视图UI与业务逻辑分开,只有数据绑定在一起,极大降低了耦合性


Elaboration细化迭代三

chapter28 活动图

chapter29状态机图

上面都看书,很简单


chapter30 用例关联

1、include包含关系

当两个或多个独立用例中存在重复,想避免冗余时,可以将重复的部分分解出去为一个子功能用例(或者不想原用例过于复杂分解一部分出去),使用包含关系包含重复的部分

2、extend拓展关系

拓展部分过于复杂或者原始用例的拓展部分不便于添加,可以将要拓展的内容作为子功能级别的拓展用例


chapter31 领域模型的精化

1、Generalization泛化关系

概念子类集合的所有成员都是其超类集合的成员,子类 is-a 超类注意不是类,是领域模型里面的概念类

子类的属性和关联必须100%与超类一致

2、abstract conceptual class 抽象概念类

如果类C的每个成员也必须是子类的成员,则C被称为抽象概念类(有点像抽象类的实例只能是其非抽象的子类一样,也就是说这个类不能实例化)

3、association class 关联类

4、关联受限

5、reflexive association 自反关联

后面的章节都是一些拓展和实战,不太算重点我也没什么笔记就不放了

参考文献
(美)Carig Larman著. UML模式和应用(原书第三版)[M]. 李洋等译. 机械工业出版社, 2006-05
单纯是个人的学习/复习笔记,对课本知识点的总结归纳,自己也是用markdown做的笔记就顺手发上来

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值