我有一个updateGUI
方法,可以接收两个不同的对象,object1
或object2
,可以用来更新两个不同的视图view1
或{{1} }。
view2
和view1
从抽象类view2
中分类,工厂类创建适当的视图。每个ViewSuper
都有自己的方法view
和initialize
的实现。
update
现在我的问题是,我应该在public void updateGUI(Object object){
GUIFactory viewFactory = new GUIFactory(object);
ViewSuper view = viewFactory.getView();
view.initialize();
view.update();
}
类中使用initialize
和update
两个抽象方法,还是使用这些方法创建一个单独的ViewSuper
并使{{1}实现这个接口?
我很困惑,因为这两种方法似乎都特定于视图层次结构,但同时它定义了一般功能,即接口(根据我的理解)用于。
如果答案是采用抽象方法,请提供一个示例,我可以将上述功能用作界面。
答案 0 :(得分:0)
在这种情况下,Abstract类和接口具有相同的用途。
案例1:视图中的任何常用方法
View1和View2包含update
和initialize
,但delete
具有常用功能。在这种情况下,我们需要一种实现它的通用方法 - >抽象类 - 可以在两个视图中使用。
案例2:没有共同的功能。
如果视图之间没有任何通用功能(在您的情况下不是这样,因为定义了一个抽象类)。然后只使用界面。
一般:
使用接口和抽象类的组合。
<强>接口强>
public interface IView {
void initialize();
void update();
void delete();
}
抽象类
public abstract class AbstractView implements IView{
abstract void initialize();
abstract void update();
void delete() {
// do delete operation
}
}
查看课程
public class View1 extends AbstractView implements IView{
}
public class View2 extends AbstractView implements IView{
}