第十章 柔性设计

一、定义:为了使项目能够随着开发工作的进行而加速前进,而不会由于它的老化而停滞不前,设计必须要让人们乐于使用,而且易于做出修改。这就是柔性设计。

二、模式:INTENTION-REVEALING INTERFACES(透露意图式的接口)

why?

如果代码只是在执行规则后得到结果,而没有把规则显示地表达出来,那么我们不得不一步一步去思考软件的执行步骤。那些只是运行代码然后给出结果的计算--没有显示地把计算逻辑表达出来,也有同样问题。如果不把代码与模型清晰地联系起来,我们很难理解代码的执行结果,也很难预测修改代码的影响。

如果开发人员为了使用一个组件而必须去研究它的实现,那么久失去了封装的价值。如果使用组件的新的开发者不得不根据实现来推测用途,那么推测的结果可能不是那个操作或者类的主要用途。很危险!

how?

在命名类和操作时要描述他们的效果和目的,而不是要暴露他们是通过何种方式达到目的的。这些名称应该与UBIQUIOUS LANGUAGE保持一致,以便团队成员可以迅速推断出他们的意义。

在创建一个行为之前先为它编写一个测试,这样可以促使你站在客户开发人员的角度上来思考他。测试可以反映出我们希望以哪种方式与这些对象进行交互。

三、模式: SIDE-EFFECT FUNCTION(无副作用的函数)

概念阐述:

在计算机科学中,任何对系统状态产生的影响都叫副作用

返回结果而不产生副作用的操作成为函数

why?

大多数操作都会调用其它操作,而后者又会调用另外一些操作,一旦形成这种任意深度的嵌套,就很难预测一个操作将要产生的所有后果。第二层和第三层操作的影响可能并不是卡户开发人员有意为之,于是他们就变成了完全

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值