我在编程开发方面仍然有点菜鸟,并且在制作干净的设计时遇到了一些麻烦。具体来说,我有一个场景如下:
我有 4 个类,每个类都有共同的功能。让我们将这些方法称为 A、B、C 等。
类:帐户;方法:A、B、C、G、H、I、S1、S2、S3
类:文件夹;方法:A、B、C、D、E、S1、S2、S3
类:组;方法:A、B、C、D、E、F、S1、S2、S3
类:角色;方法:A、B、C、D、E、F、S1、S2、S3
上面指定的方法是抽象的。因为可能有一个 FooAccount 和一个 BarAccount 以不同的方式实现方法 A。但是 FooAccount 和 FooGroup 具有相同的方法 A(因为它们具有相同的实现;Foo)。还不错,除了有些方法 S1、S2 和 S3 甚至在 Foo 和 Bar 之间实现相同,因此 FooAccount 和 BarAccount 具有相同的方法 S1、S2 和 S3。
目前我的设计很丑:
interface Object1:声明A、B、C
interface Object2 extends Object1:声明D、E
interface Object3 extends Object2:声明F
interface Account extends Object1:声明G、H、I
interface Folder extends Object2;
接口组扩展 Object3;
接口角色扩展了 Object3;
类助手:定义 S1、S2、S3
我知道禁止多重继承是有充分理由的,但如果我被允许这样做,我可以将方法 S1、S2 和 S3 放入 Object1 并将所有接口转换为抽象。然后 FooAccount 可以扩展 Account 和 FooObject1。
谁能给我一些建议,什么结构可能更好?我是否应该将所有 A、B、C 等放入 Util 类(例如 FooUtil 和 BarUtil)?