ecs与责任链
相似点
都是有一个content去贯穿所有逻辑方法。
不同点
- 是责任链的一定是由有序且可打断的。而system不具有这种特性。(虽然tiny ecs里system 之间一定是有序的,)。且责任链可以是多通道,而ecs相对来说单一(tiny ecs里只有onadd 和process,虽然process分为三种)。
所以ecs的system在个人理解上更像是一个扁平方法合集,他们之间完全解耦。当然他们之间也存在分层。如第三篇文章所说。
ecs表现类system于逻辑类system
在一帧内 表现类的system执行顺序改变不会改变表现 但是数据类的system的在一帧内顺序改变却会改变结果
所以,个人理解里,数据计算类的结构适合用责任链去实现,而ecs趋向于去写表现。况且责任链里的一个结点也可以是ecs的入口。
ecs表现与逻辑分离
ecs的一大特点就是解耦,当我们需要在服务器验证客服端的整个逻辑时,只需要去掉表现相关的system就可以。