不使用委托实现Observer模式-python3+opencv3识别图片中的物体并截取的方法

时间:2024-07-30 07:08:59
【文件属性】:

文件名称:不使用委托实现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。 一个Subject可以供多个Observer注册。 2)调用Subject实例的Register()方法,并将一个Observer的引用传递进去。 3)Observer包含一个Update()方法,此方法供Subject(通过保存的Observer的引用) 以后调用。 4)Subject包含一个Notify()方法,当某件事发生时,调用Notify(),通知Subject。


网友评论