所以采用委托的方式。
这时,我们定义一个被委托(delegatee)类Shape和一个委托(delegate)类window。
public abstract class Shape{
//....
public abstract boolean overlaps(Shape s);
public abstract int getArea();
}
public class window{
private Shape shape;
public window(Shape shape){
this.shape = shape;
...
}
public void setShape(Shape shape){
this.shape = shape;
...
}
public boolean overlaps(window w){
return shape.overlaps(w);
}
public int getArea(){
return shape.getArea();
}
}class引自《The Pragmatic Programmer》)