我正在尝试决定使用静态方法来加载/保存对象,还是使用构造函数/实例方法.
所以,对于object来说Project
,实例版本就是
public Project(path) { // Load project here } public void Save(path) { // Save project here }
而静态版本将是
public static Project Load(path) { // Load project and return result } public static void Save(path, proj) { // Save project }
所以,你更喜欢哪一个?
都不是.支持从域模型中提取持久性逻辑,并进入单独的类层.
(根据ChrisW的回答留下的评论)关于域对象泄露到另一个类的详细信息:如果您的语言允许,您可以通过使用package-privacy/internal访问来限制这些详细信息的可见性.或者,您可以使用DTO方法.