观察者模式--世界上最牛批的实现方式

    学习揣摩和应用设计模式已经好一阵子了,《道法自然:面向对象实践指南》这边书给我了很大的帮助,力荐,生动易于Get。

 

    起因是混乱的原始项目,接手起来倍感烦躁,消息传递类与类之间的关系都极其混乱。

 

    运用观察者模式,终于斩断了一些错综交杂的毛线团。从此我开始了设计模式的学习和应用,很多设计模式的书,真的很难看明白。结合实际项目,更能体会。

 

    最近对于观察者模式的认识又加深了一步。

    写了个全局主题类GlobalSubject,定义变量观察者列表observerList,实现三个方法Attach、Detach、Notify,这个类用单件模式实现,就是全局变量啦,再写个这个类的接口GlobalSubjectAPI,完美。

    这样写的好处是什么呢?首先,不用每个需要发消息给UI的类都继承主题抽象类。其次,消息都集中在一个模块,独立不混乱。整个APP就这么一个集中管理的主题类,架构非常清晰。

 

    需要接收消息并做处理的UI类就继续Observer观察者父类,根据需要对消息分别处理,实现UI和实体类的分离。

 

    在UI创建的时候,Attach到Observer列表,UI析构函数中要Detach,不然UI销毁了,Observer列表访问就会发生崩溃的情况。

   

    这个实现方式是我自己琢磨的,可能也有其他人这么做吧,分享出来。终归是站在前人的肩膀上琢磨出来的。这种实现方式真的妙处多多,设计模式学好了,真的非常有用。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值