老陈 2018-11-12 12:03
老师上课时说状态属性都是冗余的,最后要尽可能删掉,那么什么情况下可以使用状态属性?
潘加宇:
除非有增值作用的信息,才值得加上去。
对象应该有标识,这是共识,所以类图上每个类都加上一个属性**ID没有意义,属于凑工作量。不加也不必担心会漏掉。如何实现对象的标识,属于非核心域的知识,与核心域无关,命名为***ID,类型为***只是其中一种可能。
同理,对象应该有状态,这也是共识,所以也不需要加一个状态属性。如果某个类的状态转换是系统关注的,应该通过状态机表现出来。如何实现对象的状态机,同样属于非核心域的知识,与核心域无关,用一个属性代表状态只是其中一种可能。
分析工作流,不需要加。设计工作流——即编码,如果需要加,按照事先套路,通过工具或人脑加上即可。