小白写手之观察者模式

作者: haegyeong | 来源:发表于2017-09-17 14:17 被阅读61次

    学习Android到现在也两年了,感觉很多知识都不懂,也一直没写过博客分享东西,因为害怕知识点写错,怕读者发现错误,然后就很尴尬,现在想想,不写点东西给你们指出我的错误,我发现我懂的更少,所以我现在开始尝试写博客,或许写的不好,大家多多指教小的,不管是语言描述还是知识点描述的问题,反正有指出就对了,我就可以认识到自己的不足,谢谢大家啦!!!

    废话一堆完毕后进入正题,我们今天来学习一下设计模式,因为我以前也没用过设计模式,所以现在是边学边分享,也是设计模式的初学者,我可能写理论的知识点很少,都是实际敲代码展示,希望能最简单明了的分享给大家,我不一定按照以下顺序来分享,我只按照我学习的顺序来分享。

    设计模式一共有23种,其中又分为三大类:

    创建型模式,共五种:工厂方法模式抽象工厂模式单例模式建造者模式原型模式

    结构型模式,共七种:适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式

    行为型模式,共十一种:策略模式模板方法模式观察者模式迭代子模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式

    --------------------------------------------------我是观察者模式------------------------------------------------------

    观察者模式建名知意就是偏向于观察,所以我们习惯的命名就是观察者都是以xxxObserver结尾,被观察的目标xxxSubject结尾,大家要养成这种命名习惯,接下来代码步骤走起,用抢小米手机为故事展开。

    步骤一:定义Observer对象,注意:定义的是接口,里面有个方法,习惯命名为update

    定义Observer对象

    步骤二:定义实在 Observer对象,他收到消息后,然后该干嘛就干嘛

    实在的米粉

    步骤三:定义目标Subject,它可以知道观察它的目标,并提供添加、删除、和通知更新方法

    定义Subject对象

    步骤四:定义具体目标对象,比如小米MIX2

    定义具体实在的Subject对象

    步骤四:定义客户端开始进行测试,注意步骤事项

    开始测试

    步骤五:运行上面代码控制台打印出结果如下:

    打印结果

    怎么样,观察者模式是不是很简单呢?上面就是一套简单的模板,但是简单也是一个观察者模式。观察者有推模式和拉模式,我上面写的是拉模式,给我感觉这两种模式就是一个引用问题而已,推模式就是改变下面的引用为String而已(请忽略报错,因为我没改基类类型,这里只展示一下)

    推模式

    以为就这么简单就可以了??这也太不灵活了吧,什么消息都推,人家高富帅不可能全部的小米手机都想收到消息,他就想收到高配的消息,屌丝也知道自己的情况,高端机是不可能的啦,就想收到低配价钱低的手机,所以我们要灵活处理这些需求。那我们接下来就拿上面模板来稍作修改。

    修改地方一:观察者里面加多角色设置、获取方法

    增加角色设置

    修改地方二:目标类的通知更新然子类去实现

    修改目标通知方法

    修改地方三:具体的目标具体通知

    修改具体目标具体通知

    修改地方四:测试端代码:

    运行以上代码,控制台实现打印:

    结果打印

    以上就是我对观察者模式的讲解,我比较喜欢截图代码来展示,这样你们也看的舒服,文字估计早就关闭页面了,有什么不足点请大家多多指出,谢谢各位老铁了。

    相关文章

      网友评论

        本文标题:小白写手之观察者模式

        本文链接:https://www.haomeiwen.com/subject/fpupsxtx.html