9得票1回答
依赖反转原则是否意味着我必须为每个模块创建一个接口?

如果我希望我的代码遵循SOLID原则,特别是依赖反转原则,那么是否意味着我必须为每个模块创建一个接口(抽象层),即使它只有一个实现? 在我看来,根据这些帖子: https://josdejong.com/blog/2015/01/06/code-reuse/ https://blog....

22得票4回答
DDD:在领域实体上,应该放置哪些行为?

我的团队非常努力地坚持领域驱动设计作为一种架构策略。但是,大多数情况下,我们的领域实体相当无力。我们希望在我们的领域实体上放置更多的业务/领域行为。 例如,Active Record将数据访问放在实体上。我们不想这样做,因为我们很高兴使用仓储模式进行数据访问。 此外,我们设计软件时要遵循SOL...

17得票3回答
工厂应该设置模型属性吗?

作为整体S.O.L.I.D.编程努力的一部分,我在基础框架API中创建了一个工厂接口和抽象工厂。 人们已经开始过载工厂的Create方法。问题是人们正在使用模型属性来重载Create方法(因此期望工厂填充它们)。 在我看来,属性设置不应该由工厂完成。我错了吗? public interf...

47得票7回答
依赖倒置原则(SOLID)与封装(面向对象编程的支柱)的比较

最近,我在讨论依赖倒置原则、控制反转和依赖注入。在这个话题上,我们正在辩论这些原则是否违反了面向对象编程的其中一个支柱,即封装。 我对这些东西的理解是: 依赖倒置原则意味着对象应该依赖于抽象而不是具体实现,这是控制反转模式和依赖注入实现的基本原则。 控制反转是依赖倒置原则的一种模式实现,...

28得票3回答
接口隔离原则只是单一职责原则的替代品吗?

接口隔离原则仅是单一职责原则的替代方案吗? 我认为,如果我的类符合SRP,就没有必要提取多个接口。 因此,当我们不得不打破SRP时,ISP似乎是一种解决方案。 我说得对吗?

43得票3回答
单一职责原则的例子是什么?

能否给我一个单一职责原则的例子?我试图理解在实践中,一个类具有单一职责意味着什么,因为我担心我可能每天都会违反这个规则。

42得票5回答
有人能提供一个使用车辆的Liskov替换原则(LSP)示例吗?

里氏替换原则指出,子类型应该可以替换掉那个类型(不改变程序的正确性)。 请问有人能在汽车领域提供一个此原则的例子吗? 请问有人能在汽车领域提供一个违反此原则的例子吗? 我已经阅读了正方形/矩形的例子,但我认为一个关于汽车的例子会让我更好地理解这个概念。

71得票6回答
里氏替换原则 - 没有重写/虚方法?

我对里氏替换原则的理解是,基类的某些属性或实现的行为,在派生类中也应该保持正确性。 我想这意味着当一个方法在基类中被定义时,在派生类中就不应该被重写,因为用基类代替派生类将会产生不同的结果。我想这也意味着拥有(非纯)虚方法是不好的事情? 我觉得自己可能对这个原则有一些误解。如果没有,我不明...

45得票4回答
SOLID 对于函数式编程的应用

作为一个面向对象编程语言的使用者,我熟悉面向对象设计的 SOLID 原则。尽管这些原则似乎适用于函数式编程模型中的某些部分,但在没有状态的世界中,另一些部分似乎毫无意义。那么,是否有类似的原则来重构函数式代码呢?

13得票4回答
复合模式符合SOLID原则吗?

在组合模式中,叶子节点实现了组件接口,包括“Add”、“Remove”和“GetChild”方法,但是叶子节点永远不会使用这些方法。这似乎违反了接口隔离原则。 那么使用组合模式是否符合SOLID原则呢? 组合模式链接:http://www.dofactory.com/Patterns/Pa...