Fork me on GitHub

.NET简谈设计模式之(观察者模式)

观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,最求技术的人,始终都是为了技术而学技术,目的只有一个一起最求技术的最高境界;

观察者模式是设计模式里经常被用到的一种,什么叫观察者模式,字面理解就是一个或多个对象观察某个对象这种观察是有目的地,当被观察者发生某种事件时能准确的反馈到外界,通知大家你发生了什么;尤其是在今天面向对象编程的不断成熟,什么都讲究抽象将重复劳动省到最少,方法成员都以类为容器封装;这是一种好的编程规则,就好比我们所生存的大自然坏境一样,汽车与人都是独立的生存个体,大家互不干扰,我不需要知道我存在的意义,存在的意义是对别人而言;

进入主题,上面刚才讲到了汽车与人,打个比方当我们乘坐公交车的时候,我并不认识路我需要车到的时候通知乘客你到了哪个站,我们好下车;在我们做开发的时候经常会遇到这种情况,我要某个按钮被鼠标点击了之后弹出一个文本框出来,等等;继续汽车与人的比方,当汽车到站后通过什么方式通知大家你到某某站了呢,这就涉及到汽车这么一个实体是否具有到站事件,如果没有可能他永远都不会听,请看图一:

图上是一个汽车和四个乘客实体图,当汽车到达某个站的时候应该告诉乘客到了哪个站了让乘客判断一下是否是自己要下的站,请看图二:

图上是汽车到了站点1时通知乘客,并将到站的信息传递给乘客让乘客判断是否下车,如果某乘客要下车可以通知驾驶员我要下车,请看图三:

乘客判断消息是否是自己要下的站,如果是发出消息给汽车驾驶员,我们这里把驾驶员和汽车当成一体的由汽车为统称;汽车接收到乘客的下车信息后打开车门让乘客下车;我们只要把图的信息落实到代码上就OK了,请看代码图:

posted @   王清培  阅读(2033)  评论(7编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示