软件设计原则之迪米特法则

2022-10-02  本文已影响0人  GuangHui

这个原则需要我们思考,哪些算是直接的朋友,哪些算是陌生人。火车残骸般的代码显然就是没有考虑这些问题而直接写出来的代码。

或许你会说,按照迪米特法则这样写代码,会不会让代码里有太多简单封装的函数?

确实有可能,不过,这也是单独解决这一个坏味道可能带来的结果。正如我前面所说,这种代码的出现,根本的问题是缺乏对封装的理解。

一个好的封装是需要基于行为的,所以,如果把视角再提升一个角度,我们应该考虑的问题是类应该提供哪些行为,而非简简单单地把数据换一种形式呈现出来。

最后,还有一个问题我要提醒你一下。有些内部 DSL 的表现形式也是连续的函数调用,但 DSL 是声明性的,是在说做什么(What),而这里的坏味道是在说怎么做(How),二者的抽象级别是不同的,不要混在一起。

上一篇下一篇

猜你喜欢

热点阅读