您申请加入课程:软件构造

软件构造-k8凯发旗舰

https://www.scholat.com/course/rjgz
  • 创建者

    creator

    潘家辉
  • 活跃度

    activeness

  • 访问量

    visits

    73863

教学公告

20软工第12周安排
[作者: 陈恒法  发布时间:2023-05-05 22:07:44  浏览次数:75次]

一、教学安排

内容:

第20章 迭代器模式

第21章 中介者模式

二、重点难点

1、重点:掌握中介者模式和迭代器模式的动机及结构

2、难点:理解中介者模式和迭代器模式实现原理

三、课前思考

在软件设计过程中,经常会碰到要实现多个对象相互间进行交互的情形(图1)。

如果设计不好,那么随着我们引入的对象越来越多,我们的系统将会变得关系非常复杂,导致维护困难。如果我们选择中介者模式来处理对象之间 交互就可以简化我们的对象之间的交互的结构。 除了上面的思考题,如果你有时间和兴趣你还可以思考下面的交互情形并编程模拟实现:

区块链涉及密码学、哈希算法、拜占庭问题、共识算法、故障模型、网络模型等诸多知识,也在金融等领域有广泛的应用。本题中,我们需要实现一个简单的区块链系统。

在一个分布式网络中,有n个节点通过m条边相连,节点编号从1至n。每个节点初始化都有一个相同的“创世块”,链长都为1,每个节点在整个过程中都需要维护一条主链,任何操作都只在主链上进行。在整个系统中产生的每个新块都有唯一的整数编号,创始块的编号为0,其余块的编号都为正整数。当某个节点的链更新时,会将它的主链发送给它相邻的节点(邻居);而当节点收到链时,决定是否更新自己的主链。

下列情况可能会导致某个节点的链更新:

·某个节点接收到邻居发送过来的链,与当前自己的主链进行比较:如果接收到的链更长,则将其作为自己的主链;
如果收到的链长度与自身主链相同,且最后一块编号更小,则将其作为自己的主链

如果接收到的链更短,则直接忽略该链。

四、阅读材料

中介者模式:


相关课程

扫一扫二维码,快速加入本课程!

查看使用方法
网站地图