《设计模式解析》 第15章 共性与可变性分析 复习题

《设计模式解析》 第15章 共性与可变性分析 复习题

 

Review Questions

Observations

1:

What are two approaches to identifying commonalities and variabilities?

1、使用共性,可变性分析表。

2、选择问题域中任2个东西,问:
其中一个是另一个的变化么
他们都是其他东西的变化么?

 

 

Interpretations

1:

CVA says you should have only one issue per commonality. Why is this important?

如果每个共性有若干个问题,会导致这个抽象会有多个概念,这样内聚性就降低了。

2:

How do CVA and design patterns complement each other?

CVA完成了关注抽象,使得我们能够尽早找到最有用且高内聚的抽象。

设计模式使得我们关注于抽象间的关系,并能够利用过去的成功实践。

二者相辅相成。

Opinions and Applications

1:

Experienced developers, even more than inexperienced ones, often focus on entity relationships too early, before they are clear what the right entities are. Is that your experience? Give an example to confirm or refute this statement.

不懂,但按照我的理解。有经验的开发人员由于经验丰富,更能够轻易找出实体间的关系,因此,在设计时候,会更早的去关注实体间的关系。

比如我做五子棋的时候,就很快就找到player,game这2个实体,并将其关联,并没有感觉有任何不妥。

2:

Relate the approach to design starting with CVA with Alexander's approach.

CAV方法首先找出共性与可变性,进行分析,使得尽早找出抽象,然后,找出抽象间的关系,并进行模式的使用。

Alexander方法:从系统的背景模式开始,进行创建,然后不断加入新的模式去设计。

Alexander方式的局限性是,我们只有在能够识别出最外层的模式的时候,才能够使用这种方式。否则,我们会卡在第一部中。并且,他需要首先找出蕴含的各个模式,而要找出模式,首先得识别出各个实体,所以,用CAV进行抽象的识别似乎显得更好用。

CAV的方式,更加通用,能够适用于各种情况。但用模式进行设计,一开始就能够把握整体抽闲间的关系,似乎使得条例更加清晰。

因此,如果能够把握住背景模式,那么就用Alexander方法,否则就只能用CVA了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值