回复:分享一个分布式的功能块,涉及到一种新的编程思想

已锁定

牛逼之人必有牛逼之处

  • 帖子

    30
  • 精华

    0
  • 被关注

    0

论坛等级:游士

注册时间:2020-04-20

普通 普通 如何晋级?

发布于 2023-08-15 21:02:47

51楼

展开查看
以下是引用Zane在2023-08-12 18:47:59的发言 >49楼

正如“先入先出”控制块,它的存在是为了协调多个对象之间的前后关系的,但它能够协调多少对象,在这个块写完后,这个块所能够协调的对象的最大数量是已经确定了的。


为什么不能有个块可以自动适应任意个数的控制对象的协调呢?


我明白了,你所描述的是控制对象之间逻辑关系的功能块,但控制对象之间的逻辑关系千差万别,排个队是最最简单的关系了吧?不同的逻辑关系,是不是需要不同的功能块?你用一个数据接口,让两个不同的功能块能分别判断变化的功能?


所以我说:

针对这些,我就建议将每一个对象拆分出来做成一个单独的块,再根据每个工程的不同来调用适合的数量的势力(实例),然后通过一个统一的inout接口来协调他们之间的逻辑关系。


这段话你重复很多遍了,始终不能理解,打个比方,你是一个管理员管很多个排队的人,还是每个排队的人都有一个管理员,当然这个管理员像孙悟空那样有分身术而脑子是统一的?愿闻其详。




打个比方,你是一个管理员管很多个排队的人,还是每个排队的人都有一个管理员,当然这个管理员像孙悟空那样有分身术而脑子是统一的?愿闻其详。

我很高兴你能够举出这个例子,我的意思是后者,所有人都想孙悟空一样可以分身,他们之间有两个数码管可以进行循环传递,当每个队员拿到这两个数码管后,都有能力确定自己所在的位置。

即使前面有队员插队、出队,后方的队员都有能力确定自己的位置所受到的影响,并重新定位自己的位置。

而传统思维则总需要有一个管理员来管理队员的位置。


怎么做?

每一个队员通过哪些信息确定自己的位置?只需要两个变量:任务ID+数据。

总的来说很简单,通过任务ID,可以定义不同的任务,每个队员通过任务ID,确定自己应该如何处理数据。

于是通过这种思维,可以将对象分离,通过任务ID+数据,每一个对象都可以协调自己与整体之间的逻辑关系。


这种思维当然也不仅限于排队,只要满足以下条件即可:

1、每个对象的处理方式是类似的。

2、每个工程中的对象数量差别较大。

3、想要灵活的变更对象数量。








评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。