コンストラクタで2つのArrayListの依存関係を削除するために、このクラスをDIP(Dependency Inversion Principle)に従うように変更する方法はありますか?インターフェイスはどのようにすべきですか?DIP(Dependency Injection Principle)に従うためにこのクラスをどのように変更する必要がありますか?
私を混乱させる1つのことは、新しいリファレンスがクラスのコンストラクタだけでなく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);
}
...
}
do what?疑問は、むしろぼんやりとしており、おそらくタイプミスや理解の欠如によっておそらく不明確です。あなたはあなたが知りたいことを言い換えて、苦労しているところでより多くを得ることができますか? – Pete
完了しました。私の文法上の誤りを許してください。英語は私の最初の言語です。 – Jeflopo
このガイドhttp://misko.hevery.com/code-reviewers-guide/にはDI –