对象分两种:
数据型对象(What) (状态对象) | 行为型对象(How) (无状态对象) |
封装数据 | 封装业务流程, 算法 (业务相对复杂:牵涉到其他数据型对象和行为型对象) |
支持序列化和持久化 支持Clone 实现equals 实现IComparable | 所有要持久化和序列化的数据都要分离出去 所有的字段和属性都是临时的或者是指向其他数据型对象的引用 |
用于在各个子系统之间传递数据 | 应该抽取接口, 便于替换 |
所有的方法都围绕着自身属性或者字段 (比如数据合法性校验) 这些方法的实现都相对固定 | 字段或者属性用于存储操作的中间结果, 最终结果应该存放到一个数据型对象中去 |
可以被共享 | 用时随时创建 |
不应该依赖行为型对象 | 输入或者最终结果存放在数据型对象中 |
多线程下需要同步 |
对象的属性分类
对象关系属性: 该对象在和其他对象有关系的时候中才有意义的属性, 比如: Id, 对其他对象的引用
对象自身的属性: 比如: Age, Address等