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

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

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

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

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

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

这是汽车类的代码段

这是乘客的代码段;

观察者模式大概就讲完了,希望对您有帮助;

.NET简谈观察者模式相关推荐

  1. .NET简谈网络系统大局观

    我们都知道软件发展经历了很长一段路程,在软件刚刚起步的时候,有一批世界顶尖的科学家用自己整个的人生为我们创造了今天美好的信息世界,我印象最深的是我看过一本书,书名是<优雅人生>是专门介绍一 ...

  2. .NET简谈组件程序设计之(手动同步)

    在上一篇文章".NET简谈组件程序设计之(上下文与同步域) "中,我们学习了关于一些上下文和同步域的概念,可以利用这两个技术来进行自动同步. 今天我们主要学习怎么手动来执行同步,能 ...

  3. php谈谈你对分布式的理解,简谈关于对分布式处理的理解

    原标题:简谈关于对分布式处理的理解 最近这段时间一直在看分布式有关的东西,但是关于分布式自己还是不能很好的理解,所以本文对分布式基础概念进行下学习. 分布式处理 首先先了解一下分布式处理,分布式处理和 ...

  4. 异步复位同步释放_简谈同步复位和异步复位

    简谈同步复位和异步复位 大侠们,江湖偌大,有缘相见,欢迎一叙,今天来聊一聊数字电路设计中的同步复位和异步复位. 谈到同步复位和异步复位,那咱们就不得不来聊一聊复位这个词了.在数字逻辑电路设计中,电路通 ...

  5. 简谈创建字典的几种方式

    简谈创建字典的几种方式 直接用键值对的形式写出 键值对之间用逗号隔开 dict0 = {'name': 'xxx', 'age': 23} 用dict函数 dict1 = dict()

  6. python nonlocal的用法_简谈Python3关键字nonlocal使用场景

    下面是之前提过的有待提升效率的计算移动平均的方法: def make_averager(): series = [] def averager(new_value): series.append(ne ...

  7. .NET简谈组件程序设计之(上下文与同步域)

    我们继续学习.NET多线程技术,这篇文章的内容可能有点复杂.在打破常理之后,换一种新的思考模型最为头疼.这篇文章里面会涉及到一些不太常见的概念,比如:上下文.同步域等等.我也是最近才接触这些关于组件编 ...

  8. .NET简谈事务、分布式事务处理

    在本人的 " .NET简谈事务本质论"一文中我们从整体上了解了事务模型,在我们脑子里能有一个全局的事务处理结构,消除对数据库事务的依赖理解,重新认识事务编程模型. 今天这篇文章我们 ...

  9. .NET简谈组件程序设计之(渗入序列化过程)

    在本人的上一篇文章".NET简谈组件程序设计之(初识序列化.持久化) "中,我们基本上了解了什么叫序列化和持久化.通过系统为我们提供的服务,我们可以很方便的进行二进制序列化.SOA ...

  10. .NET简谈自定义事务资源管理器

    在上一篇文章"NET简谈事务.分布式事务处理"中我大概总结了关于.NET中的事务处理方式和结合了WCF框架的简单应用.在事务性操作中我们的重点是能将数据进行可逆化,说白了就是能保证 ...

最新文章

  1. java写事物提交_fabric-sdk-java 提交事务
  2. 群体结构分析软件Structure使用步骤
  3. 被Html的Button标签耍了一次
  4. 个人对于架构设计的理解
  5. 【LiveVideoStack线上分享】WebAssembly在Web多媒体领域的相关实践
  6. Python中的数值类型
  7. 高通驱动9008安装_高通snapdragon888的性能有多强大
  8. jzoj5701-[gdoi2018day2]谈笑风生【莫比乌斯反演,二分,最短路】
  9. xml文件转换成图片_怎样能把PDF文件转换成图片?
  10. Smartisan OS ROM 小米手机 2/2S 标准版 刷机教程
  11. 那一次,我们属于彼此
  12. java只有值传递_为什么说java只有值传递?
  13. 模拟tomcat连接器
  14. 管理感悟:人才是发现的,不是培养的
  15. python实现直方图规定化
  16. 起始方位角怎么确定_工程测量中的导线测量,最初的方位角怎么求?
  17. Allegro 导装配图
  18. Egret 利用ImageLoader加载服务器图片
  19. java和大数据开发该选择哪个好就业?
  20. UI自动化常见的等待方式

热门文章

  1. Dkhadoop虚拟机安装操作演示教程
  2. 孙正义宣布回购55亿美元股票,软银股价创10年最大单日涨幅...
  3. ubuntu16.04安装配置mysql数据库,分割视频为帧图像
  4. source ./ 和 . 的区别
  5. CUDA编程优化(存储器访问优化,指令优化,参数优化,)
  6. 阿里云ECS云服务器通过SAP HANA认证 海量数据处理技术助力企业数字化转型
  7. ASP.NET中 CompareValidator(比较验证)的使用
  8. 2017-5-26 正则表达式,js实战(加减数量,全选)
  9. 一个cp命令引发的mongodb大量慢查询
  10. 从mysql中检索数据后,通过userId的链接去delete数据