SOLID是Robert C. Martin介绍或记录的五种面向对象设计原理的首字母缩写。在有关任何单个原则或其与其他OOD概念的关系的问题上使用此标记。如果适用,还可以使用五个单独的标签。
我正在努力更好地理解开放/封闭原则。我熟悉参考资料,例如 罗伯特·马丁的解释 和 Jon Skeet 对这些想法的探索,以及 r...
我目前正在尝试实现基于终端的棋盘游戏,但在使用扫描仪读取输入时遇到了一些问题。我有两个独立的控制器,它们有自己的观点,所以基于他......
所以我一直在阅读refactoring.guru上的一些设计模式,并且对行为设计模式特别感兴趣。 然而,有一种设计模式让我怀疑它是否是
Python 中是否违反了面向对象范式 (SOLID)? (示例:子类化元组以实现 FractionTuple)
看到 Python(至少部分)似乎违反了一些 oo / SOLID 原则,我感到非常惊讶。 例子: 类分数元组(元组): def __new__(cls, p, q): # 确保 p 和 q 是
如何解决java spring boot应用中的单一职责原则问题
在 UI 应用程序中,我们有 3 个保存按钮,在我们的 spring boot 应用程序(后端)中,我们有 3 个 api,这意味着只要用户点击保存按钮就可以保存一些数据。现在我们的设计发生了变化,他们...
所以,我有一个模型,它的保存功能有一些像这样的副作用: 从 django.db 导入模型 客户类(模型。模型): customer_name = models.CharField(max_length=255)
我曾多次听说过,在子类的overriden方法中不调用基方法是一种反模式。谁能解释一下这是否是真的?如果是,那么我想知道 ...
我有一个非常复杂的类型。该类型有多个可读属性,每个属性都是一个复杂的类型: public class FinalResult { public ComplexType1 ComplexType1 {get;set;} public ...。
我有3个类,Account,CappedAccount,UserAccount,CappedAccount和UserAccount都扩展了Account。Account包含以下内容: abstract class Account { ... ** *试图... ...
UnitOfWork & Generic Repository,SOLID原则与Custom Repository。
我在我的项目中使用了UnitOfWork和Repository模式。我想把代码写得干净点。这是我的IUnitOfWork.cs(应用层) public interface IUnitOfWork : IDisposable { int Save(); ...
在一个领域模型中,使用一个接口变量来潜在地容纳一个不同类的对象是合法的吗?
在我的项目中,我想实现SOLID原则,这样我的代码可能更容易测试和以后的扩展。为此,我很好奇是否可以使用Liskov的Substitution ...
Collections.unmodifiableMap(及其他)是否违反SOLID原则?
我最近在实践中阅读Java Concurrency,并且第一次接触到Collections.unmodifiableMap(...)方法。该方法围绕现有Map创建一个只读包装,然后...
因此,我正在做单例类,我想服从依赖倒置原则,但是当函数承诺基本接口时,编译器不允许我返回派生实例。类...
我正在学习SOLID,并且试图了解单一责任原则。 WalkingData类存储“日期”和“步行距离”。该类还读取存储的数据。公共...
使用对象时从一种实现类型向另一种实现类型转换是否正确? ISP
我有一个简单的代码库,几乎没有'武器'具体类,该类实现了不同的合同,以供其客户使用。我的合同:公共接口IWeaponPrimaryAttack {void ...
我有一个用例,需要根据某些条件定义和调用不同的RequestPreparationManagers。假设条件是团队名称(我正在创建一个伞形框架,它将...
我正在尝试解决一个简单的OOP问题。当我必须创建少量武器并且每个武器都有一个主要动作并且可以通过单击鼠标执行该主要动作时。 a弹枪的例子...
工厂模式违反了OCP原则,因为它使用if()语句,这意味着如果添加任何类,则工厂类必须更改,这与SOLID原则背道而驰。自我...
我在这里阅读了Robert Martin关于接口隔离原理的文章。在文章结尾,当解决ATM UI架构问题时,他说:还考虑每个...
我刚刚开始学习SOLID原理,我想将其应用到我的Laravel项目中。我的问题是我不知道首先应用什么原则,我违反了什么原则。我的项目有简单的...