美文网首页
软件设计原则之迪米特法则

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

作者: GuangHui | 来源:发表于2022-10-02 22:06 被阅读0次
    • 每个单元对其它单元只拥有有限的知识,而且这些单元是与当前单元有紧密联系的;
    • 每个单元只能与其朋友交谈,不与陌生人交谈;
    • 只与自己最直接的朋友交谈。

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

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

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

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

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

    相关文章

      网友评论

          本文标题:软件设计原则之迪米特法则

          本文链接:https://www.haomeiwen.com/subject/exssartx.html