Chr*_*ski 6 java interface abstract-methods
问:如果要在未链接到接口的抽象类中创建抽象方法,您是否仍遵循Program to the Interface的原则?
我已经为我创建的所有UI类使用了一个接口; 但是,鉴于接口的原因,我没有看到与我想要创建的抽象方法和现有接口的直接关联.
通常,我只是创建抽象方法并完成; 但是,我想知道我是否违反了程序到接口的设计原则.
问:我应该为此创建另一个接口还是坚持使用抽象方法?
注意:这不是接口与抽象类问题.
public abstract class BaseClass extends Clazz implements Interface {
// 1 out of 4 interface methods are implemented here
CustomObj getMode() { ... }
// I am actually also thinking of taking that 1 method - getMode() - out of the
// interface and implementing it as an implemented method without an interface.
// Method that made me ask this question!!
abstract CustomObj getDefaultMode(); // Not related to the interface - Interface
}
public interface Interface {
String getFirstNumber();
String getSecondNumber();
CustomObj getMode(); // This one is implemented in the BaseClass, but I think it no longer belongs in this role
// CustomObj getDefaultMode(); // This one is not in Interface, but makes be believe I need a new Interface or just have them declared in an Abstract Class.
}
Run Code Online (Sandbox Code Playgroud)
注意:My Base类更多用于简化具体类中的代码.基类处理一些重写的方法,辅助方法,初始化等...所以它不像接口那样,而是作为标准的抽象类.
我认为这个问题的措辞过于抽象,无法给出明确的是或否的答案。
一般来说,抽象类没有什么问题。问题在于人们滥用它们。我们如何定义滥用?或者更确切地说,抽象类的正确用途是什么?
为此,我们必须记住,面向对象是一种对“现实世界”进行建模的方式:好的设计提供易于理解的模型,而糟糕的设计则很难遵循。此外,好的面向对象设计也可以扩展到建模问题可能扩展的方向。(显然我不是在谈论关键字extends。)
抽象方法的意思是:如果没有这个方法,该类中声明的其他方法就没有意义。而接口所说的是,要成为 X,你至少需要这些方法。
因此,虽然抽象方法是表达实现需求的一种方式,但接口定义了任何实现它的人都可以扮演的角色。
有时您需要其中之一,有时您需要另一个。
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |