【问题标题】:does factory pattern violate single responsibility principle?工厂模式是否违反单一责任原则?
【发布时间】:2020-07-24 06:50:32
【问题描述】:

根据鲍勃叔叔的责任意味着“改变的理由”。
所以工厂类负责创建多个类,如果这些类中的任何一个会改变(在构造函数中),工厂类也需要改变。
所以我认为它有不止一个改变的理由(实际上有 n 个改变的理由,n 是类的数量)因此它违反了 SRP。

【问题讨论】:

  • 我们在 android 和 ios 中使用这些设计模式,不是吗?虽然我明白你的意思
  • 对不起,我最初的评论似乎有点生硬 - 我试图解释你的问题很笼统,并不是真正的 ios/android 特定的,所以如果你更愿意问这个问题,你可能会得到更好的答案关于软件工程而不是 SO,虽然这只是我的意见/建议
  • 谢谢你我认为你是对的@a_local_nobody
  • 首先请注意,至少有四个different factory patterns 流行使用,因此问题高度取决于您所指的模式。其次要注意SRP 中更改的原因是people 而不是代码,因此类的数量并不一定重要。
  • @jaco0646 但是人换班,基本一样

标签: factory-pattern solid-principles single-responsibility-principle


【解决方案1】:

我同意 - 虽然我从未使用过类工厂,但在我看来它肯定会具有无限的复杂性。

但是,如果您查看以下教程:Factory Design Pattern,您会发现工厂仅从单一接口生成扩展类。

因此,如果工厂类的一部分只是简单地获取一个属性数组并将它们应用于输出的类,那么复杂性将被限制在一个维度上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多