适配器模式

一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle),线对象(Line)都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项目进度,将角度对象(Angle)绘制功能交给了合作团队实现。但合作团队将角度对象绘制函数定为了DrawAngle()。绘图系统提供给用户后,用户不满意,希望能统一的调用,不用记太多命令。应用适配器模式,用JAVA控制台应用程序完善该设计。绘制该模式的UML图。
设计模式之----适配器模式

package adapter;

public interface Draw {
  void draw();
}

package adapter;
//圆形
public class Circle implements Draw{

  @Override
  public void draw() {
  	System.out.println("draw a Circle!");
  }

}

package adapter;
//矩形
public class Rectangle implements Draw{

  @Override
  public void draw() {
  	System.out.println("draw a Rectangle!");
  }

}

package adapter;
//线段
public class Line implements Draw{

  @Override
  public void draw() {
  	System.out.println("draw a Line!");
  }

}



package adapter;
//角度
public class Angle{
	public void drawAngle(){
		System.out.println("draw an Angle!");
	}
}

package adapter;
//角度适配器类
public class AngleAdapter implements Draw {
	private Angle angle;
	
	public AngleAdapter(Angle angle){
		this.angle = angle;
	}
	
	@Override
	public void draw() {
		angle.drawAngle();
	}
}
package adapter;

//测试类
public class Test {
	public static void main(String[] args) {
		Circle circle = new Circle();
		Rectangle rectangle = new Rectangle();
		Line line = new Line();
		Angle angle = new Angle();
		AngleAdapter angleAdapter = new AngleAdapter(angle);

		circle.draw();
		rectangle.draw();
		line.draw();
		angleAdapter.draw();
	}
}

运行结果

设计模式之----适配器模式

相关文章: