敏捷软件开发学习随笔(二)

模块功能单一性

不知道理解是否正确,仅作为记录,待实践确认。

  1. 书中把职责定义为“变化的原因”。即如果有多于一个动机去改变一个类,那么这个类就具有多于一个职责。于是我回想了下自己写的游戏,发现这么做几乎不可能。可能书是基于java语言编写的原因?
    一个类只实现一个功能不行,那就改为一个方法/函数只实现一个功能。例如:AI分析,这个类需要实现初始化AI分析类的成员变量、根据获得的牌进行可用牌型归类、视情况分析指定牌型等。那么就将这些单一的功能分成不同的函数,其中部分比较大的功能再细分为比较小的函数去一一实现。而较大的功能函数,只负责调用它需要的单一功能函数。
  2. 分离耦合的职责:即有时候无法把两个或者多个职责拆分成单一模块,那么就分离他们的接口。即:将互相耦合的两个类中更主要的类抽象出一个接口类,而被抽象的类成为对应抽象类的实现。另一个类从依赖被抽象类改为了依赖抽象出来的接口类,从而解耦。
  3. 持久化:部分规则会需要频繁的变动,但是持久化的方式却并不会频繁变动。当偶然原因导致这两个功能集合在一起时就会增加维护的负担。而这一点并不用过于担心,因为进行单元测试的时候就能发现这个问题,及时使用FACADE或者PROXY模式对代码进行重构,将这两个职责给分离开。

PS:
FACADE模式 即 外观模式
参考资料:外观模式详解
PROXY模式 即 代理模式
参考资料:代理模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值