假设我有类
User
,其属性为 name
、email
等。在我的代码中,我仍然希望能够更新该信息,但我不希望任何人能够访问直接设置方法。
public class User implements UserOperations {
private String name;
public User(String name) {
this.name = name
}
public String getName() {
return name
}
public void setName(String name) {
this.name;
}
}
public interface UserOperations {
String getName();
}
创建仅包含 getters 方法的接口是一个好主意吗?或者我应该将用户方法的访问功能从
public
更改为 private
或 protected
?
我尝试实现该接口,但我觉得这不是最好的解决方案。
坚实的原则是解决您问题的关键答案。 在某种程度上,您希望将管理状态和管理操作的逻辑分开,您应该创建更多的类。
这是可能的解决方案: 你的班级 User 现在是 pojo。使 User 类不可变 将无法更改此类的对象。
要对对象执行更改,您需要创建一个具有新内部状态的新对象。通常,它会使用其他一些类作为外观来完成,它将执行所需的操作并返回新对象。
实际上你需要一些类UserOperationManager 它将处理对对象的所有必需访问
这种方法将涵盖单一责任和接口隔离原则