前言
最近工作忙了很多关于设计的事情,用了常用的分层设计MVC也尝试是用了ECS这种设计方式,同时也参考了Unity或者Creator的这种组件化方式。有了很多困惑也有了一些总结。
首先,MVC也好ECS也好他们都是一种编程的范式,或者说你组织代码的方式。然而他们的层面不同,也就是说不是一个层面的东西。
- MVC:用来解决UI交互方面的成熟的经验体系,是一种分层的设计。
- ECS:是一种对象组织的方式,比如继承也是一种处理对象关系的方式。而ECS就是组合的方式来处理对象见关系的,还看到了一种说法:
Entity system architecture derives from an attempt to resolve the
problems with the game loop. It addresses the game loop as the core of
the game, and pre-supposes that simplifying the game loop is more
important than anything else in modern game architecture. More
important than separation of the view from the controller
也就是说ECS这种方式目标是用来尝试处理游戏循环问题的。并预先假设简化游戏循环比现代游戏架构中的任何其他东西更重要。比从控制器分离视图更重要。
同样,还有很多的架构,比如分层设计的系统架构等等。
简单的总结来说,他们不是一个层面的,MVC是一种分层的针对U