文件名称:不使用委托实现Observer模式-python3+opencv3识别图片中的物体并截取的方法
文件大小:10.59MB
文件格式:PDF
更新时间:2024-07-30 07:08:59
.net之美 关键技术解析
3.8 不使用委托实现Observer模式
3.8.1 设计思想概述
本节是相对独立的一个小节,但是通过对本节的学习,相信读者会对委托和事件有一个
更加深入的认识。在第3.4节“.NET框架中的委托和事件”中,已经较详细讲述了Observer设
计模式的思想,所以这里仅简单提及一下。Observer设计模式中实际上只包含两类对象,一
个是Subject(主题),一个是Observer(观察者)。它们之间的角色是:
❑Subject,主题(被监视对象),它往往包含着Observer所感兴趣的内容。
❑Observer,观察者,它观察Subject。当Subject中的某件事发生的时候(通常是它所
感兴趣的内容改变的时候),会被自动告知,而Observer则会采取相应的行动(通常为更新
自身状态或者显示输出)。
它们之间交互的核心工作流程是:
1)Subject提供方法,比如Register()和UnRegister(),用于Observer进行注册(表示它
对Suject感兴趣)和取消注册(表示不再对Suject感兴趣)。
Register()方法接收一个Observer的引用作为参数,并保存此引用。
保存的方式通常为在Subject内声明一个集合类,比如List