一些简单的读书摘录笔记--《代码整洁之道》

确定方法结构合不合理的简单办法

著名的得墨忒耳律(TheLawofDemeter)认为,模块不应了解它所操作对象的内部情形。如上节所见,对象隐藏数据,曝露操作。这意味着对象不应通过存取器曝露其内部结构,因为这样更像是曝露而非隐藏其内部结构。
更准确地说,得墨忒耳律认为,类C的方法f只应该调用以下对象的方法:

  • C
  • 由f创建的对象;
  • 作为参数传递给f的对象:
  • 由C的实体变量持有的对象。
  • 方法不应调用由任何函数返回的对象的方法。

换言之,只跟朋友谈话,不与陌生人谈话。

下列代码²违反了得墨忒耳律(除了违反其他规则之外),因为它调用了getOptions(()返回值的getScratchDir(()函数,又调用了getScratchDir(()返回值的getAbsolutePath()方法。

final String outputDir=ctxtgetOptions() getScratchDir().getAbsolutePath();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值