如何正确处理Delphi中的逆依赖性?
我的主要目标是在切换到Delphi语言时使用坚实的原则。 让我假设我有一个父母 parent 我无法编辑或修改(例如,Delphi库的一部分,隐藏在私有代码中..…
如果您从基类覆盖方法并引入新功能,您是否违反SRP?
例如。 看看这个班级的层次结构: public abstract class CharacterEquipment { protected abstract void RunBeforeAttachProcedure(); protected abs…
为O(1)设计停车场,进入不同的空间类型
最近,我正在使用使用OOD原则设计停车场系统的规范示例。我正在考虑的一件事是,如果地板上有适当的停车位类型,则可以快速进入。 public class Parki…
通过传递协议,静态功能封装在Swift中。类型比OO封装更好,并且可以测试?
鉴于我的功能无需共享和存储状态;我应该使用静态类/结构/枚举来保存该功能吗?我在许多地方都读到,使用静态功能保存代码是一个不好的设计,因为静态…
参考实现多个接口的类实例的正确方法是什么?
参考实现多个接口的类实例的正确方法是什么? public interface IPrinter { public void Print(); } public interface IScanner { public void Scan()…
如何在接口实现代码C#之前执行默认方法?
我有一个仅实施一种方法的接口: public interface IHandler where T : Comand { Task HandlerAsync(T comand); } 我在类中使用它如下: public class…
使用违反Liskov替代原则的继承将一个新的子类引入建立系统
问题:除了Liskov替代原则以外,是否有其他设计原则在将现有基本功能子集引入已建立的继承系统时要考虑? 上下文:我们拥有一个建立的系统,该系统具…
Python理解Liskov取代原则
在此示例中,我违反了LSP吗?由于直接用子类实例替换最后两行会给我带来错误(因为没有初始化工资)? person_1 = Employee('Brad') person_1.print_n…
HP OOP构建器模式使用
我对在实践中使用PHP构建器模式感到困惑。 在许多文档中,他们建议使用这样的构建器。 require 'Pizza.php'; require 'PizzaBuiler.php'; $piza_build…
将接口隔离原理应用于服务层接口
以书作为类比,假设我有一个具有以下 API 的图书资源(还有更新和删除等,但为了简单起见,这里只显示两个) GET /book/{id} POST /book 这些 API 中…