我不时会遇到这个问题而无法做出最终决定。
例如我有一个User类。是否有任何“推荐”的方法在数据库中创建此对象?例如;
User user = new User();
user.name = "John";
user.lastname = "Doe";
user.CreateNewUser();
VS
User user = new User();
user.name = "John";
user.lastname = "Doe";
User.CreateNewUser(user);
哪一个是首选的方式,为什么?或者它取决于项目遵循的设计模式?
答案 0 :(得分:1)
经验法则:非静态方法应该基于(或修改)对象状态。如果没有,它应该/可能是静态的。
从你的两个例子中,我更喜欢哪一个?答案都不是。
创建用户实体并存储它不是用户实体的操作,它是持久性的一部分。所以我可能会有类似
的东西User user = new User();
user.name = "John";
user.lastname = "Doe";
PersistenceManager.CreateNewUser(user);
请注意PersistenceManager的静态方法,因为它不会以任何方式修改PersistenceManager。