游戏行业里有用entity component system配合data oriented programming进行框架设计,弱化之前的oop
https://zhuanlan.zhihu.com/p/270927422
【 在 philbloo (philbloo) 的大作中提到: 】
: 我发现所有 bug 的根源都是分散式的映射管理。野指针,mutable,pass by ref,面向对象,这些全都是导致分散式映射管理的途径而已。
: 任何两个值的关系都是一种映射,比如 child - parent,root - leaf ,result - operand 。这些映射关系通常是保存在一个实例的属性里,并且通常是同时被多个实例共同保存。比如 parent 保存自己 children 的一个数组,而每个 child 保存自己的 parent。这些属性通常是以
: 解决这个问题最好的办法是集中管理映射关系。每个实例不再单独记住各自的关系,而是由一个集中的 map 来表达这些关系。听起来是开倒车,但其实是最不容易出错的做法。这样其实是把每个实例当作值而不是对象来处理,那么在做语法语义分析,静态分析的时候,可以用更接近
: ...................
--
FROM 221.221.162.*