[英]Why creating protected properties in beans is counted a bad practice?
我的意思是:
public class SomeBackingBean {
protected String someString;
public void setSomeString (String str) {
this.someString = str;
}
public String getSomeString {
return someString;
}
}
这只是一般性回答的一般情况。
现在第二个例子:
public abstract class AbstractBean<T extends EntityInterface> {
protected T entity;
public void setEntity (T t) {
this.entity = t;
}
public void getEntity () {
return entity;
}
protected ReturnType calculateSomethingCommon () {
//use entity (knowing that it implements EntityInterface)
//to implement some common for all subclasses logic
}
}
public class ConcreteBean extends AbstractBean<ConcreteEntity> {
...
//and here we can write only specific for this bean methods
...
}
第二个例子也是不良做法的例子吗?
通常,受保护的变量违反了面向对象的原则。 您正在给其他对象直接访问成员变量。 这样,您将形成更紧密的耦合,并且由于其他对象正在直接使用它,因此很难更改该变量。 这也意味着您无法执行诸如设置时进行验证,在getter / setter周围添加日志记录等操作。
例如,如果您有一个PropertyChangeListener注册到Bean的属性,则如果子类直接更改了受保护的属性,则可能不会通知任何已注册的侦听器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.