1. 对象三要素:唯一标识性、状态、行为
  2. 对象的设计原则:行为必须是改变自身状态
  3. 为什么「行为必须改变自身状态」,假如我不遵从该原则,会有什么痛点?
  4. 设计一段行为改变其它对象状态的代码,看看会发生什么
  5. 提取关键要素:状态管理。如果违背「行为必须改变自身状态」,则涉及到状态管理问题,而在 JS 开发中,状态管理方案的探索一直没有停止:MVC -> Flux -> Redux -> Recoil -> …?。
  6. 由上一步推论:遵循「行为必须改变自身状态」把状态变更控制在自身范围,不增加程序的复杂度
  7. 分析各个方案的痛点 …

参考

mvc vs flux vs redux the real differences
为什么我不再使用 MVC 框架