# cells **Repository Path**: mwm1c/cells ## Basic Information - **Project Name**: cells - **Description**: 中国大学mooc翁凯Java细胞自动机 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-07 - **Last Updated**: 2022-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 问题0: 为什么不是在Cell提供setAlive(boolean)函数?而是采用复杂的die()、reborn()两个函数? 因为这里有两个作用,一个是标记cell的die,一个是标记cell的reborn,采用复杂的die()、reborn()两个函数,方便后续分别扩展,符合聚合理论:一个代码单元应该负责一个聚合的任务。 问题1: 为什么Field.getNeighbour()不直接看Cell.isAlive()来返回一个数字,而是要返回一个数组让外面来数数? 目的是将数据和操作分离,减少硬编码,降低耦合度,方便具体实现的更改和程序的扩展。 问题2: 为什么不是由Cell自己判断自己的邻居的情况来决定自己是否应该被die或reborn? 这样会使代码耦合性高,应使实现采用数据和表现分离,方便代码抽象和提升扩展性。