Rumah > Java > javaTutorial > java 外观(Facade)模式的经典案例

java 外观(Facade)模式的经典案例

黄舟
Lepaskan: 2017-03-10 13:22:36
asal
1690 orang telah melayarinya

类图:



/**
 * 角色
 * @author stone
 *
 */
public class Actor {
	public Actor(String name) {
		System.out.println("创建了角色: " + name);
	}
	
	public void load() {
		System.out.println("角色加载");
	}
	
	public void unload() {
		System.out.println("角色退出,存档");
	}
}
Salin selepas log masuk
/**
 * 场景
 * @author stone
 *
 */
public class Scene {
	public Scene(String name) {
		System.out.println("创建了场景: " + name);
	}
	
	public void load() {
		System.out.println("场景加载");
	}
	
	public void unload() {
		System.out.println("场景卸载");
	}
}
Salin selepas log masuk


/**
 * 外观类,即一个业务功能类,它的实现需要持有其他具体的 业务对象
 * @author stone
 *
 */
public class Facade {
	Actor actor;
	Scene scene;
	
	public Facade() {
		this.actor = new Actor("lisi");
		this.scene = new Scene("海天盛宴");
	}
	
	public void startGame() {
		actor.load();
		scene.load();
	}
	
	public void endGame() {
		actor.unload();
		scene.unload();
	}
}
Salin selepas log masuk


/**
 * 外观(Facade)模式
 * 		简单的说就是降低了类与类之间的耦合度,使用一个Facade类来持有原有类的引用。它使用的频率其实非常的高
 * 跟静态代理在实现上有些类似,不同的是,外观模式中可以持有多个实体对象的引用,进行组合实现业务功能
 * @author stone
 *
 */
public class Test {
	public static void main(String[] args) {
		/*
		 * 如果不使用外观模式,那么在Actor和Scene可能至少一方需要持有对方的引用
		 * 当需要添加新的具体功能类时,只需要在Facade中添加一个引用,在相应的周期函数中使用即可
		 */
		Facade facade = new Facade();
		facade.startGame();
		System.out.println("----");
		facade.endGame();
	}
}
Salin selepas log masuk

打印:

创建了角色: lisi
创建了场景: 海天盛宴
角色加载
场景加载
----
角色退出,存档
场景卸载
Salin selepas log masuk

Atas ialah kandungan terperinci java 外观(Facade)模式的经典案例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan