【发布时间】:2010-11-05 23:05:09
【问题描述】:
我正在编写一个框架(在 Java 中,但问题是通用的),我将在其中提供一组接口供客户端实现。框架中的功能将依赖于实现类的构造方式,也就是说,它们依赖于这些实现来提供其他接口实例。
例如我可能有:
Interface IContribution {
public IMyStuff getMyStuff();
public IHelper getHelper();
}
Interface IMyStuff {
public void doSomeMethod(IHelper helper);
}
如何确保 IMyStuff 和 IHelper 的这些实例可用?
一种方法是在接口中创建“getter”方法,然后在我的框架中煞费苦心地检查返回的空对象。
另一种选择是创建抽象类来实现一个工厂,该工厂调用(使用策略模式)要实现的接口方法。但这违背了我首先拥有界面的事实。然后客户端应该使用抽象类。但是他们可以通过使用接口而不是抽象类来规避这一点。因此我不应该提供接口而只提供抽象类...
那么,您对此有何想法,对此有何务实的做法?
【问题讨论】:
-
危险威尔罗宾逊,危险:建筑师宇航员在前面。
标签: oop interface abstract-class implementation