【发布时间】:2016-02-07 15:44:26
【问题描述】:
如何修改这个类以遵循 DIP(依赖倒置原则)以删除构造函数中的两个 ArrayList 依赖项?接口应该如何?
让我感到困惑的是,新的引用指向ArrayList<type>,而不仅仅是类的构造函数。而且我不知道如何处理这种情况......
package mvc.controllers;
import java.util.ArrayList;
import mvc.models.AbstractModel;
import mvc.views.AbstractViewPanel;
public abstract class AbstractController {
private ArrayList<AbstractViewPanel> registeredViews;
private ArrayList<AbstractModel> registeredModels;
public AbstractController() {
registeredViews = new ArrayList<AbstractViewPanel>();
registeredModels = new ArrayList<AbstractModel>();
}
public void addModel(AbstractModel model) {
registeredModels.add(model);
model.addPropertyChangeListener(this);
}
public void removeModel(AbstractModel model) {
registeredModels.remove(model);
model.removePropertyChangeListener(this);
}
public void addView(AbstractViewPanel view) {
registeredViews.add(view);
}
public void removeView(AbstractViewPanel view) {
registeredViews.remove(view);
}
...
}
【问题讨论】:
-
做什么?这个问题相当模糊和不清楚,肯定是错别字和可能缺乏理解。您能否重新表述您想了解的内容,并更深入地了解您正在苦苦挣扎的地方?
-
完成了,我希望现在更清楚了。原谅我的语法错误。英语不是我的第一母语/语言。
-
本指南misko.hevery.com/code-reviewers-guide 有一些非常好的示例,也涵盖了 DI
-
DIP 是依赖倒置原则。你的错误很容易犯,因为依赖注入是一种满足 DIP 的技术。
标签: java model-view-controller dependency-injection refactoring dependency-inversion