Banq:看了你的设计模式:Observer,有些疑问
你举的例子中
一个数据比如Name就要一个Observer
再来一个Price就要新建一个Observer
假如我一个商品,有100个属性,难道要100个Observer吗
请问如何解决这个问题?
你举的例子中
一个数据比如Name就要一个Observer
再来一个Price就要新建一个Observer
假如我一个商品,有100个属性,难道要100个Observer吗
请问如何解决这个问题?
可以使用一个方法作为执行listener的入口啊,例如
public void setChange(){
......
}
这样就 ok了。
如果你要观察某个属性的改变,那就需要在特定的属性中监听改变。或者你可以看一下sun的Observer的实现
你好
可以具体地说说吗
比如写一些关键代码出来看看
谢谢
如果你是需要监听product的改变,还是某个属性的改变?
我的具体需求如下:
数据库中有3个表,记录了以下信息:
一种产品(N个),有N个属性
我要监控后台管理程序对数据库的以下操作
1.增加一个产品
2.删除一个产品
3.更新某个产品的某个属性
4.更新某个产品的某几个属性
------------------------------
应该比较复杂吧,小弟洗耳恭听
每次对数据库的操作
都要映射到一个products.xml上
也就是说
我往数据库增加一个产品
products.xml上就相应地增加了一个product元素
我更新了数据库中某个产品的某个属性
products.xml上就相应地更新了那个产品的那个属性
...........................
这个可能没必要使用observer
可是使用castor的数据库到XML复制的功能,这个功能可以roll back,也就是说具备事务跟踪机制,非常安全方便。
板桥大哥
小弟已经开始按Observer那样做了:(
能否给点意见,如果您来用Observer做这个会......
望不吝赐教,多谢多谢
那你就对每个动作加个observer
可以把这些observer做成能自由添加,由一个程序来总体控制管理,类似jive中的filter管理器。
可否贴一些关键代码出来看看?
> 你举的例子中
>
> 一个数据比如Name就要一个Observer
>
> 再来一个Price就要新建一个Observer
>
> 假如我一个商品,有100个属性,难道要100个Observer吗
>
> 请问如何解决这个问题?
实际上,Observer是针对class来的, 它是无法区分相同class类型的属性的变化的.
eg.
String name, description;
对于name和description的变化,Observer是无法区分的.
这篇文章可以解决多个observer带来的问题
http://www.javaworld.com/javaworld/javatips/jw-javatip29.html