此問題屬於MVC(模型 - 視圖 - 控制器)。我的模型當前使用Java中的Observer/Observable模式更新了視圖:在Java中使用Observer和Observable模型的設計很糟糕嗎?
public class Model extends Observable {
}
public class View implements Observer {
@Override
public void update(observable o, Object obj) {
// ... update the view using the model.
}
}
這很好。然而,我的模型變得越來越複雜 - 它開始持有其他類的列表:
public class Model extends Observable {
List<Person> people = new ArrayList<Person>();
}
public class Person {
private String name = "";
// ... getter/setter for name
}
我的問題是:當一個人的名字的變化我想更新聽它包含人的模型視圖。我能想到的唯一方法是讓Model實現一個Observer類並讓Person擴展一個Observable類。然後,當Person改變時,他通知他的觀察者(將包括父模型)。
但是,如果我的模型變得複雜,這看起來像很多工作。是否有更好的方法來「改變」父模型?
事實上,使用MVC的設計很糟糕。 –
你能證實這一點或提供替代方案嗎? – sdasdadas
基本上,MVC不符合標準的「現代」UI概念。你必須站在你的頭上,將設計「分離」成這三種人造類別。你確實希望儘可能保持數據/表示分離,但是當你試圖分離「視圖」和「控制器」時,你必須開始做出無意義的區分。 –