添加实际不使用的接口

dev*_*ium 2 c# java oop

我现在有两个接口(我会在这里的名字IAIB):

interface IA {
    int Width;
    int Height;
    ...
}

interface IB {
    int Width;
    int Height;
    ...
}
Run Code Online (Sandbox Code Playgroud)

共享相同的两个属性:它们都有Width一个Height属性.

我在想是否在定义IMatrix包含WidthHeight属性的接口时有任何意义:

interface IMatrix {
    int Width;
    int Height;
}
Run Code Online (Sandbox Code Playgroud)

问题是虽然它们共享两个相同的属性,但我不会IMatrix在我的任何编码中使用多态性:即,在任何情况下我都不会想要使用它IMatrix,我只是想要使用IAIB.添加一个IMatrix看起来更像是过度工程而不是其他东西,但我想问你们你们对此事的看法是什么.

谢谢

Mit*_*ers 7

如果你没有专门使用它,那么我会说你没有必要添加它.


Dan*_*ant 6

如果存在您正在使用或可能合理地希望将来使用的真实关系,那么抽象关系是有意义的.如果关系非常松散(它们恰好有两个属性意味着类似的东西,但在完全不同的上下文中),那么就没有理由提供抽象.