在衣食住行中学习设计模式
2020-01-07 本文已影响0人
颍水书生
设计模式,是软件开发中的一个概念,往往刚开始学习的时候,容易摸不着头脑,也不知道该怎么使用。
但其实,每个设计模式都是为了解决特定的问题而存在的,并不是提出这个模式的人为了故弄玄虚而拍脑袋想出来的。为了解决生活中的一些问题,同样会有设计模式的存在。如果能够多用心观察,会发现很多设计模式的身影,不仅有助于理解生活,也有助于学习设计模式。
观察者模式
北方的冬天,十分的寒冷;早晨等公交车时,左等不来,右等不来,站在寒风中瑟瑟发抖。如果说这个时候能有个小秘书能在前面的站点通风报信就好了,告诉你公交车还剩下几分钟能到你的站点,你就可以提前规划好时间,在温暖的室内等候。
当然给你自己专门配一个小秘书成本有点太高,最好是一个小秘书能服务很多人,这样才符合经济学道理嘛。而且现在互联网技术这么发达,如果能用软件做这件事情,那么成本更低了。
其实这样的服务已经有了,而且用起来很方便,就是我们大家经常用的高德导航。只要设置好了出发地、目的地和到站提醒,高德就一直在后台守候着,等到公交车快到你那一站的时候,就会给你推送消息提醒,告诉你车快来了,赶紧下楼吧。
我们来看看观察者模式的定义:定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。
你和其他订阅了到站提醒的小伙伴就是观察者,公交的状态就是被观察者,当公交的状态改变时(临近你身边的站点时),就会通知你更新(赶紧下楼吧)。
观察者模式是不是很简单呢?