1

Pls find the link for reference: "Strategy for success" article of JavaWorld

My question is why do we need to have separate interface and implement it in abstract class, when we can declare those abstract methods in abstract class itself?

ex in image,

public interface Border(){
      paintBorder();
      getBorderInsets();
      isBorderOpaque();
 }


public class abstract AbstractBorder implements Border(){
 .....
}

instead we can have abstract class like

public class abstract AbstractBorder {
      paintBorder();
      getBorderInsets();
      isBorderOpaque();
 }

why we are using interface? what is the necessity?

4

3 回答 3

1

也许接口定义了可能存在于其他抽象类中的行为,除了你提到的那个。IDisposable 接口就是一个很好的例子。

如果您决定在抽象类本身中声明这些方法,那么当您从这个抽象类实现一个具体类时,您最终可能不得不处理很多混乱。此外,由于您可以在抽象类中指定行为,因此该行为可能会被实现类重用。

于 2013-03-01T17:11:01.880 回答
0

对接口而不是类进行编程是一种很好的实践。在策略模式中,想法是具有“策略”接口,并且在运行时您可以更改策略(实现接口的类)而无需更改大部分其余代码。

这是使您的代码更加灵活和强大的SOLID原则的良好开端。

在我的 github中有一个策略模式的示例,并且对象“Cavaleiro”(英语中的骑士)在运行时发生了变化。

为此,我创建了一个接口并使用它而不是一个类的对象,通过它我可以轻松地改变“策略”。

于 2013-03-01T11:42:34.067 回答
0

这也是我在开始使用 Java 时也想过的事情。一个非常详细的答案可以在这里找到。如果您需要任何进一步的说明,请发表评论。

于 2013-03-01T11:36:52.643 回答