【发布时间】:2016-11-12 10:19:54
【问题描述】:
我在使用正确的继承链而不丢失 DRY 原则的好部分时遇到了问题。
给定以下结构:
- 抽象类 A 是我所有类的基础
- 抽象类 B:A 是我所有可以具有特殊功能的类的基础(通过 B 提供)
现在,我需要两个具有相同功能的新类。但是一个是A型,另一个是B型。(这个不能改变!)
两个类都应该有一个方法SetSize()。
所以最后会有类 C:A 和 D:B,它们都有相同的 SetSize 方法。
问题:我如何创建一个基类中间层以使SetSize()-方法只声明/实现一次(DRY)?
我猜想使用接口或一些静态辅助类来实现SetSize() 的逻辑?
是否有任何模式或最佳实践来实现这种行为?
【问题讨论】:
-
SetSize的行为是否对所有实现都相同? (对于 A 类和 B 类,正如你提到的dry)? -
@Yogi 两种实现的方法完全相同。这就是为什么我正在寻找一种方法来在一个点上拥有它
标签: c# inheritance design-patterns abstract-class dry