/**
 * Create an interface/wrapper class that "has a"
 * implementation object and delegates all requests to it
 */

public abstract class Shape {

    protected ColorImplementor colorImplementor;

    public Shape(){
    }

    public abstract void colorShape();

    protected void setColor(ColorImplementor color) {
      this.colorImplementor = color;
    }

    protected ColorImplementor getColor() {
      return this.colorImplementor;
    }

}
