协议如何运作

面向对象编程的一大好处就是封装。可以使用各种行为来组建应用程序,而这些行为能分为不同但又可以起互动的组件,为这些组件创建对象。

组件可能是一些界面或视图。其他的组件可能是底层的数据或模型的一部分。还有一些事控制器,用于将视图和数据关联起来。但是这些区分并不足够。当创建更多的应用程序时,你会发现自己一遍又一遍的重复做同样类型的事情。

例如,存在一系列相关的屏幕:一个屏幕显示一组数据对象,如Car对象;另一个屏幕显示某个对象的细节,如car detail视图;还有一个屏幕让你编辑该车的属性,如make或year。

哎哟解决该问题,首选也是最经典的方式,是在对象和相关的屏幕中设置引用。详情屏幕(detail screen)会有概览(overview)的引用,属性编译器会拥有到详情屏幕的引用,等等。

然后每个类都实现方法,让另外的类调用。概览视图会有一个方法用于更新一辆汽车。详情视图也会有类似的目的方法。详情视图有一个方法用于更新字段。很快到最后,代码会像一碗意大利面,充斥着各种相互关联的方法、属性和屏幕。某个地方的改动会对其他地方造成重要的影响。代码不灵活而且难以维护。更糟糕的是,类开始明确针对它们所要显示的数据,所以用的一组类以及界面流。这些都不可重用。

使用协议是修复该问题的好方法。协议定义一种类型的对象如何与另一种类型的对象交流:我需要何种信息?我将发送何种信息和状态?以及我能实现何种行为?协议也可以具体致命,代理必须实现哪儿些消息以及哪儿些消息是可选的。

使用协议允许清理这碗意大利面,并且很容易做出变更,因为你知道具体哪儿个类、屏幕或对象如何与另一个交流。可以更改协议的供给者或使用者的整个实现部分的代码,只要他们都遵循该协议即可,并且随着深入,你会开始将常见的需求抽取为类,从而能能在多个项目中重用。

使用协议让这些变得更简单,尤其是在你注意到对象是协议的代理,或是协议的实现而非只是协议时。

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局与动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划与电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置与动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值