⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bridgeclient.java.svn-base

📁 这个是我做j2ee培训时候自己整理和编写的设计模式的学习例子
💻 SVN-BASE
字号:
package org.hyq.bridge;

/*
 * abstract class Shape {
 public void draw();
 }

 class Rectangle extends Shape {
 }

 class Circle extends Shape {
 }

 // 这里业务出现了多种画图方式,DP1,DP2……

 // 使用继承,创建不同绘图的类,类数量增多

 class V1Rectangle extends Rectangle {
 public void draw() {
 DP1.draw_line();
 }
 }

 class V2Rectangle extends Rectangle {
 public void draw() {
 DP2.draw_line();
 }
 }

 class V1Circle extends Circle {
 public void draw() {
 DP1.draw_Circle();
 }
 }

 class V2Circle extends Circle {
 public void draw() {
 DP2.draw_Circle();
 }
 }
 */

abstract class Shape {
	protected Drawing myDrawing;

	abstract public void draw();

	Shape(Drawing drawing) {
		myDrawing = drawing;
	}

	protected void drawLine() {
		myDrawing.drawLine();
	}

	protected void drawCircle() {
		myDrawing.drawCircle();
	}
}

class Rectangle extends Shape {
	public Rectangle(Drawing darw) {
		super(darw);
	}

	public void draw() {
		drawLine();
		drawLine();
		drawLine();
		drawLine();
	}
}

class Circle extends Shape {
	public Circle(Drawing draw) {
		super(draw);
	}

	public void draw() {
		myDrawing.drawCircle();
	}
}

abstract class Drawing {
	abstract public void drawLine();

	abstract public void drawCircle();
}

class V1Drawing extends Drawing {
	public void drawLine() {
		DP1.draw_a_line();
	}

	public void drawCircle() {
		DP1.draw_a_circle();
	}
}

class V2Drawing extends Drawing {
	public void drawLine() {
		DP2.drawLine();
	}

	public void drawCircle() {
		DP2.drawCircle();
	}
}

class DP1 {
	public static void draw_a_line() {
		System.out.println("使用DP1的draw_a_line()画线");
	}

	public static void draw_a_circle() {
		System.out.println("使用DP1的draw_a_circle()画圆");
	}
}

class DP2 {
	public static void drawLine() {
		System.out.println("使用DP2的drawLine()画线");
	}

	public static void drawCircle() {
		System.out.println("使用DP2的drawCircle()画圆");
	}
}

public class BridgeClient {
	public static void main(String[] args) {
		Drawing draw1 = new V1Drawing();
		Drawing draw2 = new V2Drawing();
		Shape shape1 = new Rectangle(draw1);
		shape1.draw();
		Shape shape2 = new Circle(draw2);
		shape2.draw();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -