【问题标题】:Difference between Concern and Responsibility ( ie difference between SRP and SoC )?Concern 和 Responsibility 的区别(即 SRP 和 SoC 的区别)?
【发布时间】:2012-10-14 20:34:22
【问题描述】:

SRP - 每个类应该只有一个职责(即更改的理由)
关注点分离是将计算机程序分解为不同功能的过程功能重叠少 尽可能。关注点是程序中的任何兴趣或关注点。 (关注==系统特性。)

a) 据我了解,两者之间的唯一区别是 SRP 试图将 职责 分成不同的 SoC 试图将关注 分成不同的模块?!

b) 如果 a) 下的假设是正确的,关注责任之间有什么区别(除了 em>责任存在于较低的抽象级别)?

谢谢

【问题讨论】:

    标签: design-patterns separation-of-concerns single-responsibility-principle


    【解决方案1】:

    这就是我对它们的看法 - 相同的原则,通常在不同的抽象级别引用。

    【讨论】:

      【解决方案2】:

      好问题。 :) 免责声明:只是我的想法。我之前没有考虑过区别。我认为这两个概念之间没有太大区别。

      但是,我想说的是: 我只知道横切问题。尽管正如您所说,关注点的基本概念是程序中的任何兴趣或关注点,但如果关注点不是跨领域的,它们会成为责任吗?

      我认为原理是一样的。甚至我的理解也和你一样。 在购物车系统中,将商品添加到购物车可以被视为一个问题……这是用例应该做的主要事情。所涉及的类并不真正关心日志记录、安全性等。即使没有日志记录,也可以将项目添加到类中。但是对于购物车或服务必须公开添加项目的功能,否则用例将失败。 同样,对于日志记录用例,如果记录器未能记录活动,则意味着日志记录用例不起作用,即使该项目已添加到购物车。

      有点像,将商品添加到购物车是谁的责任? (比方说 CartService)如果 AddItemToCart 故事失败,它会被追究责任吗?是的。如果 LogAddItemActivity 失败会追究责任吗?不。 AddItemToCart 故事是否与日志记录活动有关。这是。它可以与 CartService 负责的活动分开吗? 模块和类是不同层次的抽象。

      【讨论】:

        猜你喜欢
        • 2013-08-07
        • 2011-10-20
        • 2020-01-23
        • 2014-10-09
        • 2010-12-21
        • 2011-05-11
        • 2014-01-24
        • 2014-02-16
        • 1970-01-01
        相关资源
        最近更新 更多