观察者模式

本节主要内容:1、观察者模式意图;2、观察者模式UML图描述;3、举例说明;

一、观察者模式意图

定义了一种一对多得依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

Define a one-to-many dependency between objects so that one object changes state,all its dependents are notified and updated automatically.

二、UML描述

三、举例说明

猫叫,主人醒,老鼠跑

Observer代码:

View Code
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace y.ObserverPattern
7 {
8 public interface IObserver
9 {
10 void Response();
11 }
12
13 public class Host:IObserver
14 {
15 public void Response()
16 {
17 Console.WriteLine("主人醒来!");
18 }
19 }
20
21 public class Rat:IObserver
22 {
23 public void Response()
24 {
25 Console.WriteLine("老鼠快跑!");
26 }
27 }
28 }

Cat代码:

View Code
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace y.ObserverPattern
7 {
8 class Cat
9 {
10 List<IObserver> listObserver = new List<IObserver>();
11 public void Attach(IObserver observer)
12 {
13 listObserver.Add(observer);
14 }
15
16 public void Detach(IObserver observer)
17 {
18 listObserver.Remove(observer);
19 }
20
21 public void Meou()
22 {
23 Console.WriteLine("猫叫");
24 foreach (IObserver item in listObserver)
25 {
26 item.Response();
27 }
28 }
29
30 }
31 }

Program.cs

View Code
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace y.ObserverPattern
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 Console.Title = "观察者模式";
13 Console.WriteLine("Press any key to exit.......\r\n");
14 IObserver host = new Host();
15 IObserver rat = new Rat();
16 Cat cat = new Cat();
17 cat.Attach(host);
18 cat.Attach(rat);
19 cat.Meou();
20 Console.Read();
21 }
22 }
23 }

运行结果:

四、源码这里下载

五、参考文献

《大话设计模式》

http://www.dofactory.com/Patterns/PatternObserver.aspx

 

转载于:https://www.cnblogs.com/xyz168/archive/2011/11/30/2268667.html

一、基础信息数据集名称:包裹与标签检测数据集分类类别:- label(标签):表示物品上的标识信息,如条形码、文字标签等。- package(包裹):表示运输或存储中的包装物,如箱子、袋子等。标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。数据格式:图像数据,适用于计算机视觉模型训练。二、适用场景物流自动化系统开发:数据集支持目标检测任务,可用于构建AI模型,自动识别包裹和标签,优化仓储分拣、运输跟踪等物流流程,提升效率和准确性。零售与电商应用:集成至库存管理系统,实现产品标签自动识别,辅助商品上架、价格核对和库存盘点,减少人工错误。制造与包装质量控制:用于检测包装完整性或标签位置,在生产线中实现实时质量监控,确保产品符合标准。计算机视觉研究:支持目标检测算法的训练与优化,适用于学术或工业研究,推动物流和零售领域的AI创新。三、数据集优势类别聚焦性强:数据集专注于包裹和标签两类核心对象,数据针对性强,便于模型快速学习特定特征,减少噪声干扰。标注兼容性高:YOLO格式标注与主流深度学习框架(如YOLO系列)无缝适配,可直接加载使用,简化模型训练流程。任务适配灵活:专为目标检测任务设计,支持包裹定位和标签识别,可扩展至相关应用如分类或简单分割。实际应用价值突出:直接服务于物流、零售等产业,提升自动化水平,降低运营成本,具有高度商业落地潜力。
一、基础信息数据集名称:交通事故检测数据集图片数量:训练集:5268张图片;验证集:261张图片;总计:5529张图片分类类别:- bike-accident(自行车事故):涉及自行车的事故事件。- bike-crash(自行车碰撞):自行车与其他物体的碰撞场景。- car-accident(汽车事故):涉及汽车的事故事件。- car-bike-crash(汽车-自行车碰撞):汽车与自行车之间的碰撞情况。- car-crash(汽车碰撞):汽车与其他物体的碰撞事件。- non-accident(非事故):无事故的正常交通场景。标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。数据格式:图片数据(JPEG/PNG格式),来源于交通监控或相关场景。二、适用场景- 智能交通监控系统开发:用于实时检测道路上的交通事故,自动触发报警和响应机制,提升交通安全管理效率。- 自动驾驶与辅助驾驶系统测试:帮助训练和验证AI模型识别事故场景,增强车辆的环境感知和安全性能。- 保险与风险评估应用:自动分析事故视频或图像,辅助损害评估、责任认定和理赔处理。- 学术研究与教育培训:支持计算机视觉、交通安全领域的算法研究、模型验证及教学实践。三、数据集优势- 类别覆盖全面:包含多种交通事故类型(如自行车、汽车相关事故)和非事故场景,确保模型训练的多样性和泛化能力。- 标注精准可靠:采用YOLO格式,边界框定位准确,便于模型学习目标检测任务,兼容主流深度学习框架。- 数据规模适中:拥有超过5000张训练图片,适合深度学习模型训练和验证,平衡了计算资源与模型性能。- 应用价值突出:直接针对交通事故检测需求,具有实际部署潜力,可助力智能交通和安全系统的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值