由外之内的创建类(Construct classes from the outside in)


当设计一个新类时,从调用者(caller)的角度来看类的设计是很有帮助的:
  • 由于会有更多的用例(use case)反馈, 最终的设计质量会更好
  • 通常会使错误的设计发现的更早,这就意味着能更快的设计好


大多数设计可以简单概括为下面几步:

  1. 做做好的假设(Make your best guess)
  2. 发现并修正错误
  3. 重复1.2.



第2步看起来是个关键步骤。错误发现得越早越好,在这方面看来,从外到里(from the outside in)设计做的很好。


设计类主要是公有方法的设计,由外至内(from out side in)的添加一个非私有方法大约有下面几步:
1. 从调用者(caller)的角度写一些用例代码
2. 通过添加一个简单的桩(stub)方法,使上面的代码编译通过。例如,如果该方法返回值为void, 桩(stub)就是一个简单的空方法,
   如果是返回一个值,则桩(stub)只需简单的返回null,0,false或空字符串,等等即可。


3. 这样,由于调用代码很少,尝试不同的设计就很简单了。


4. 根据调用者的角度决定方法名和返回值


5. 根据方法本身的实现需要(而不是调用者)来决定方法所需的参数


6. 确定返回值是否准确,这一点很重要,因为改动返回值会很大的隐响调用方代码。


7. 调用该方法是否很容易让人理解?


8. 当设计趋于稳定时,可给该方法些javadoc作为该方法和调用方的正式协议。通常,这会帮助我们说明细节和边界条件


9. 实现该方法,并测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值