支持我有一个严格保存实例字段的Java Bean类:
class College
{
building = "Burruss";
dean = "Mr. Bergess";
schools[] String = {"College of Engineering", "Business School"};
valedictorian = "Mr. Smart Guy";
...
...
...
}
假设对于College实例中的每个更改,都会发送一条消息:
class messageSender
{
... if (College values have changed)
Send that instance's fields in byte[] form
}
假设我有一个Swing GUI(Java),它也会检查College中的更改
class myGUI
{
... if (College values have changed)
Alert each individual JTextField the updated field
}
观察者模式是否与此相关?如果大学有1000个变量,那么每次实例字段值改变时我都必须包含一个“notifyObservers()”方法!
例如,对于那1000个变量,我有1000个setter方法。然后,每个setter方法都必须有一个notifyObservers()调用。
这是对的还是有更好的方法?
答案 0 :(得分:3)
如果您有一个包含1000个字段的类,您可能还有其他更相关的设计问题。
每个字段更改方法(设置者)调用notifyObservers()
都没有异常。您可能想尝试尽可能多地封装状态和逻辑;信息隐藏只是很好的设计。
答案 1 :(得分:0)
我认为Observer在这里很好,但是Listener更好,因为 1.您可以创建几种类型的侦听器 2.当事件发生时,它被传递给侦听器的处理程序方法,因此它可以知道实际发生了什么。例如,它可能包含Mark的评论中提到的1000个字段之一。