让首席信息官夜不能寐的问题
+ 被观察者,它维护观察者列表,并在自身发生改变时通知观察者。也可称为发布者、事件源等。 + 观察者,它将自身注册到被观察者维护的观察者列表,并在接收到被观察者的通知时做出响应。观察者也称订阅者。 ### 如何实现观察者模式 被观察者的接口应包含3个方法:增加观察者、删除观察者、向观察者发送通知。其中,增加观察者、删除观察者通常由观察者调用,用于表明哪些观察者对象需要得到通知。发送通知方法通常由被观察者调用,因此可以考虑定义为protected方法。发送通知方法应遍历自身的观察者列表,逐一调用观察者的接收通知方法。这3个方法功能较为明确,可以用抽象类、模板、泛型等技术提供通用实现。 观察者的接口需要提供接收通知方法,以供被观察者调用。不同的具体观察者类型实现各自的接收通知方法,实现当被观察者发生改变时,观察者应做出的响应。 由于观察者接口只有一个方法,在C#语言中deligate来代替,在C++中可以用std::function代替,这样进一步解耦了不同类型的观察者,其不必派生自同一个公共接口。当然,当系统中的观察者的确有所联系时,则不应该过度追求解耦,显式定义一个观察者接口或抽象类可以使结构更为清晰、严谨。 观察者模式常常与命令模式配合使用。命令模式是,将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。采用命令模式,将通知或事件封装成对象,可以使观察者和被观察者之间进一步解耦。例如,如果不希望在被观察者的运行过程中穿插执行观察者的函数,则可以保存命令稍后执行。 ### 观察者模式的特点和适用场景 每种设计模式都有其最适合的应用场景,如果正确使用,可以帮助理清复杂的耦合关系,简化设计。但如果在不合适的场景中生搬硬套,则会把原本简单的事情搞复杂,并不能真正解决需求。观察者模式也不例外,在实际项目中,必须具体问题具体分析,考察需求是否符合观察者模式的特点,决定是否选用观察者模式。 + 观察者模式适合一对多的关联关系。一个被观察者可以有零个或多个观察者。当然,一个程序中被观察者可以有多个,每个被观察者都有自己的一对多关系,而相互之间没有关联。 + 逻辑上的依赖关系是单向的。被观察者往往可以独立运行,并不依赖观察者。而观察者的顺利运行依赖于被观察者的推动,离开被观察者就运行不起来了。 + 调用关系与逻辑关系是反向的。逻辑上被观察者不依赖观察者,但有事件发生时却是被观察者调用了观察者的方法。 下面我们用一个例子来看如何应用观察者模式来解决具体的需求,以及使用观察者模式带来的好处。 我们假设需求是这样:某个应用程序中有多处要用到定时执行的功能,就是到一个固定的时间需要执行一个特定的函数。很自然,多处要用到的功能应该提炼出来作为一个子模块。但另一方面,我们又不希望这个定时模块与每一个用到了定时功能的其他模块都有很强的耦合。 观察者模式可以帮助我们设计定时模块,既能服用,又有低耦合性。这里我们的示例实现如下。为了突出展示观察者模式,我对需求做了一定简化,我们的定时模块固定在每天上午9点触发,不支持自定义时间。
+ [C++语言实现AlarmClock](AlarmClock.c++) 数据安全和隐私 尽管专业人士认为物联网技术带来了大量安全隐患,但物联网的应用仍在增加。大约28%的公司表示,他们经历了一次网络攻击,这是由于他们使用了物联网基础设施。更具体地说,38%的安全专业人士认为,物联网面临的最大安全挑战是流程可见性差和缺乏内部专业知识。 IT专业人员认为,网络安全培训应该是任何采用物联网的组织的优先事项。通过对员工进行有关如何正确保护其隐私和组织数据的培训,可以大大降低成功进行网络攻击的风险。物联网采用率很高的行业应特别关注所涉及的风险,并努力为其员工配备所需的工具和知识。金融和医疗保健行业经常处理用户的个人信息,这使得他们容易成为黑客的主要目标,因此,应优先保护这些敏感数据。卡巴斯基称,2019年上半年发生了1.05亿起针对“蜜罐”中物联网设备的攻击,这是2018年上半年的7倍多。 据ZDNet称,这一数字只会随着2020年的到来而增加。随着技术的进一步完善,物联网还将在未来带来额外的安全挑战。协调物流和制造的非集中式工业物联网系统增加了本已非常复杂的保护行业免受黑客攻击的问题的复杂性。人工智能和机器学习也越来越容易为组织所用,这也为网络犯罪分子提供了更多开展行动的机会。
除了培训,组织还可以采取其他措施来保护其数据,并降低物联网带来的风险。进行例行的安全检查和审计可以在很大程度上找出组织中需要修补的任何重大安全漏洞。新设备的添加也应该受到限制,以确保每台设备在连接到网络之前都经过评估并认为是安全的。当然,IT部门也应该让他们的软件和硬件与最新的体系架构保持同步。此外,对于数据中心而言,选择正确的设备对于物联网安全也是至关重要的。 (编辑:济源站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |