学习Android到现在也两年了,感觉很多知识都不懂,也一直没写过博客分享东西,因为害怕知识点写错,怕读者发现错误,然后就很尴尬,现在想想,不写点东西给你们指出我的错误,我发现我懂的更少,所以我现在开始尝试写博客,或许写的不好,大家多多指教小的,不管是语言描述还是知识点描述的问题,反正有指出就对了,我就可以认识到自己的不足,谢谢大家啦!!!
废话一堆完毕后进入正题,我们今天来学习一下设计模式,因为我以前也没用过设计模式,所以现在是边学边分享,也是设计模式的初学者,我可能写理论的知识点很少,都是实际敲代码展示,希望能最简单明了的分享给大家,我不一定按照以下顺序来分享,我只按照我学习的顺序来分享。
设计模式一共有23种,其中又分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
--------------------------------------------------我是观察者模式------------------------------------------------------
观察者模式建名知意就是偏向于观察,所以我们习惯的命名就是观察者都是以xxxObserver结尾,被观察的目标xxxSubject结尾,大家要养成这种命名习惯,接下来代码步骤走起,用抢小米手机为故事展开。
步骤一:定义Observer对象,注意:定义的是接口,里面有个方法,习惯命名为update
定义Observer对象步骤二:定义实在 Observer对象,他收到消息后,然后该干嘛就干嘛
实在的米粉步骤三:定义目标Subject,它可以知道观察它的目标,并提供添加、删除、和通知更新方法
定义Subject对象步骤四:定义具体目标对象,比如小米MIX2
定义具体实在的Subject对象步骤四:定义客户端开始进行测试,注意步骤事项
开始测试步骤五:运行上面代码控制台打印出结果如下:
打印结果怎么样,观察者模式是不是很简单呢?上面就是一套简单的模板,但是简单也是一个观察者模式。观察者有推模式和拉模式,我上面写的是拉模式,给我感觉这两种模式就是一个引用问题而已,推模式就是改变下面的引用为String而已(请忽略报错,因为我没改基类类型,这里只展示一下)
推模式以为就这么简单就可以了??这也太不灵活了吧,什么消息都推,人家高富帅不可能全部的小米手机都想收到消息,他就想收到高配的消息,屌丝也知道自己的情况,高端机是不可能的啦,就想收到低配价钱低的手机,所以我们要灵活处理这些需求。那我们接下来就拿上面模板来稍作修改。
修改地方一:观察者里面加多角色设置、获取方法
增加角色设置修改地方二:目标类的通知更新然子类去实现
修改目标通知方法修改地方三:具体的目标具体通知
修改具体目标具体通知修改地方四:测试端代码:
运行以上代码,控制台实现打印:
结果打印以上就是我对观察者模式的讲解,我比较喜欢截图代码来展示,这样你们也看的舒服,文字估计早就关闭页面了,有什么不足点请大家多多指出,谢谢各位老铁了。
网友评论