美文网首页
Effective Java 第14条: 在公有类中使用访问方法

Effective Java 第14条: 在公有类中使用访问方法

作者: linyk3 | 来源:发表于2019-03-20 20:12 被阅读0次

退化类:

// Degenerate classes like this should not be public!
class Point {
    public double x;
    public double y;
}

坚持面向对象的设计方法, 对于可变的类来说, 应该用包含私有域和公有方法的类来替代:

// Encapsulation of data by accessor methods and mutators
class Point {
     private double x;
     private double y;
     public Point(double x, double y) {
          this.x = x;
          this.y = y;
      }
     public double getX() {   return x;  }
     public double getY() {   return y;  }
     public void setX(double x)  {  this.x = x;   }
     publid void setY(double y)  {  this.y = y;   }
}

如果类可以在它所在的包的外部进行访问,就提供访问方法.
如果类是包级私有的,或者是私有的嵌套类,直接暴露它数据域并没有本质的错误.
如果域是不可变的,暴露出来的危害相对较小一些.

总之,公有类永远都不应该暴露可变的域.

相关文章

网友评论

      本文标题:Effective Java 第14条: 在公有类中使用访问方法

      本文链接:https://www.haomeiwen.com/subject/dctxvqtx.html