OO比较符合人的概念模型,大自然是没有OO的,大自然更类似于ECS,所谓的天地不仁,以万物为刍狗。演化也不是树状的,其实类似于网状。
无机世界是类似于ECS的,有机世界传递信息需要概念模型,所以适合OO。
ECS是底层运行模式,OO是高层信息交流模式。
OO和ECS的模式,并不需要分的太开。总体上,OO的模式,偏向于人类和生物对世界的概念及其创造物,偏高层偏对外偏应用实现。ECS的模式,偏向于无机世界及低级有机世界,偏底层偏对内偏系统实现。一般情况下,两者皆有,只是多少的问题。比如生物演化,大多生物是两性生殖,也就是子代有两个上一代,然后分开不久的两个分支,只要不生殖隔离,还是可以结合再生子代,当然宏观上看起来主要还是树状的,但是微观仔细看其实是网状的。
举个编程的例子,游戏引擎用于构建一个底层虚拟世界,其实现就便于用ECS模式,而GUI之类的,是上层与玩家交互信息工具和语言,其实现就是用OO模式,整体上是树状的,就算现在流行的Vue和React前端框架,在我看来也是OO的变体。UI本质上是语言,是人与软件之间交互的语言。简洁明了是核心,华丽的装饰类似于华丽的辞藻,并非必需。