2 kingsonyoung kingsonyoung 于 2016.02.01 15:11 提问

观察者模式中没有抽象观察者接口怎么办

比如Swing组件是已经被封装好了,不可能让它去实现一个Observer接口。这使有没有其他的办法。我看网上有人说用代理模式?怎样解决?

3个回答

fk002008
fk002008   2016.02.01 15:15
已采纳

代理就是给原来的类扩展机能

1你做一个代理类,这个类和你目前的类具有相同的接口
2-然后在这个代理类中定义一个子对象就是你当前类的对象
3--然后你写出接口的方法
自己增加扩展机能,然后调用这个字对象的方法(也是该接口的)

fk002008
fk002008   2016.02.01 15:27

太一般化了,针对你的问题就是

比如以JButton为例,做一个 JButtonProxy的类,它组合一个JButton对象,JButtonProxy的就是这个JButton得代理类
这个类和JButton有相同的接口或者抽象父类
然后你再给这个类增加实现的接口

凡是和Jbutton一样的方法实现的时候,都调用这个Jbutton对象的方法。
如果你想增加什么新的功能,只要在Jbutton对象的方法调用前后增加即可

caozhy
caozhy   Ds   Rxr 2016.02.02 08:46

可以使用适配器模式、桥模式、装饰模式,具体要看你的应用场景。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!