开发者社区> 问答> 正文

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

51干警网 2016-02-17 22:43:58 859

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

分享到
取消 提交回答
全部回答(1)
  • 51干警网
    2019-07-17 18:29:20
    已采纳

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

    太一般化了,针对你的问题就是
    比如以JButton为例,做一个 JButtonProxy的类,它组合一个JButton对象,JButtonProxy的就是这个JButton得代理类
    这个类和JButton有相同的接口或者抽象父类
    然后你再给这个类增加实现的接口
    凡是和Jbutton一样的方法实现的时候,都调用这个Jbutton对象的方法。
    如果你想增加什么新的功能,只要在Jbutton对象的方法调用前后增加即可

    0 0