Java封装以减少耦合
示例
封装使您可以对类进行内部更改,而不会影响调用该类的任何代码。这减少了耦合,或减少了任何给定类依赖于另一个类的实现的程度。
例如,让我们从上一个示例中更改Angle类的实现:
public class Angle { private double angleInDegrees; public static Angle angleFromDegrees(double degrees){ Angle a = new Angle(); a.angleInDegrees= degrees; return a; } public static Angle angleFromRadians(double radians){ Angle a = new Angle(); a.angleInDegrees= radians*180/Math.PI; return a; } public double getDegrees(){ return angleInDegrees; } public double getRadians(){ return angleInDegrees*Math.PI / 180; } public void setDegrees(double degrees){ this.angleInDegrees= degrees; } public void setRadians(double radians){ this.angleInDegrees= radians*180/Math.PI; } private Angle(){} }
此类的实现已更改,因此它仅存储角度的一种表示形式,并在需要时计算另一种角度。
但是,实现发生了变化,但接口没有改变。如果调用类依靠访问angleInRadians方法,则需要对其进行更改以使用的新版本Angle。调用类不必在乎类的内部表示。