我刚刚进入java(来自AS3),我理解语法和所有基础知识,但我找不到任何有关基本程序架构的教程或书籍。
例如,
ObjectA has a property: ObjectB.
ObjectB has a property: x
ObjectB.x changes at some point.
如何在ObjectB.x中使用对象A'catch'或'hook into'或'listen for'更改?
在AS3中,我将使ObjectB成为一个事件Dispatcher,让ObjectA监听一些自定义事件。
或者在Flex Framework中我会做一个changeWatcher。
这是如何在Java中完成的,我在哪里可以找到这些架构基础知识?
答案 0 :(得分:0)
如果你真的需要,你可以创建一个事件并听取它。
在ObjectB.setX()
方法中,您可以触发事件,让ObjectA知道值已更改。
以下文章介绍了如何执行此操作:http://www.javaworld.com/javaqa/2000-08/01-qa-0804-events.html
但我不确定我会这样做。在我的ObjectB.setX()
中,我会查找一个ObjectA父项,如果它存在,则使用在ObjectA上定义的函数。
答案 1 :(得分:0)
您可能需要查看observer pattern
答案 2 :(得分:0)
在Java bean世界中,使用property change listener实现观察者模式 这java tutorial provides a good example。忽略它的Java bean GUI部分并专注于代码。
答案 3 :(得分:0)
查看JavaBeans规范,它包含有关如何创建事件和监听器的指南,以便它们符合标准(它是标准化的,因为Sun认为GUI小部件中的某些类似Delphi的市场从未实现过,但是,采用标准的做事方式并没有什么坏处。 Here's a tutorial on writing event listeners.