我有两个类:Transaction
和TempTransaction
,它们来自抽象类AbstractTransaction
。
因为这些对象的构造很复杂(要实现很多或规则),所以我为每种类型都有一个构建器类。我还有两种类型的事务的存储库和处理持久性的“编写器”。
由于Transaction
和TempTransaction
的行为略有不同(例如Transaction
几乎完全不可变),我需要强制执行传递的类型。我通过使用Temp和非Temp类继承的抽象类来实现这一点,然后实现为具体类键入提示的覆盖方法,然后在抽象类中调用父方法。
这意味着我最终得到了很多抽象类,如下所示: -
我确信在为此模块添加功能时会有更多功能。我觉得我可能缺少一些设计模式来帮助解决这种多态性 - 在阅读OOP的基础知识时,我们总是被告知寻找继承的替代方法作为引入多态的方法......