一个对象应该只做一件事的想法来自哪里?

Daf*_*ees 7 oop

我不确定我同意它,所以我想找到这个想法背后的书或期刊文章,以便我可以检查我是否完全理解他们所说的内容以及他们的意思.

我想我理解这个想法 - 我只是想知道来源,所以我可以检查这个想法的来源.

为什么我问:

"做一件事"一词含糊不清,可能意味着许多事情,包括"每班只有一种方法"(荒谬)......我认为这可能意味着一种责任(即许多方法).它也没有特别的用处因为你必须判断一个单一的责任何时变得复杂到需要通过某种授权来重构几个职责......

Gru*_*eck 21

Bob Martin的 SOLID原则.

单一责任原则准确无误.

虽然,在单一责任原则章节的第一页中,他指出:

Tom DeMarco和Meilir Page-Jones的工作描述了这一原则.他们称之为凝聚力.

他提到的工作的参考资料是:

  • 结构化分析和系统规范,Tom DeMarco,Yourdon Press Computing Series,1979
  • 结构化系统设计实用指南,2d.编辑,Meilir Page-Jones,Yourdon Press Computing Series,1988

其他来源(来自S.Lott的评论)包括:

  • 马丁的名单是以前发表的资料来源. (5认同)

小智 6

在软件中发明模块化概念的人是David Parnas博士.经典论文是关于将系统分解为模块的标准

虽然他没有谈论OO(因为它还没有),OO的想法自然地从Parnas博士的工作中延伸出来.这项工作的一部分是分析如何将您的软件分解为模块,并且该模块应该是单一目的.