外觀模式

什麼是外觀模式?

例如:打開電腦時,在電腦的內部需要執行一下幾步,即啓動電源、主板、硬盤,最後啓動操作系統:關閉電腦時需要執行

的步驟與之正好相反。

關鍵:1.意圖    2.動機     3.適用性

 

package org.java.test;
/**
 * @author Lee
 * 功能:定義電源類 Power,並實現啓動電源和關閉電源的方法
 * @date:2018.11.27  22.23
 * 
 * */
public class Power {
	public void Connect(){
		System.out.println("Power Connect");
	}
	public void Disconnect(){
		System.out.println("Power Disconnect");
	}
}
package org.java.test;
/**
 * @author Lee
 * 功能: MainBoard  主板類 ,定義主板開關的方法
 * @date:2018.11.27 22.35
 * 
 * */
public class MainBoard {
	public void On(){
		System.out.println("MainBoard On");
		
	}
	public void Off(){
		System.out.println("MainBoard Off");
	}
}
package org.java.test;
/**
 * @author Lee
 * 功能:HardDisk 硬盤 
 * @date:2018.11.27   22.38
 * 
 * */
public class HardDisk {
		public void Run(){
			System.out.println("HardDisk Run");
		}
		public void Stop(){
			System.out.println("HardDisk Stop");
		}
}
package org.java.test;
/**
 * @author Lee
 * 功能:  OperateionSystem  操作系統
 * @date:2018.11.27  22:47
 * 
 * */
public class OperateionSystem {
	public void Startup(){
		System.out.println("OperateionSystem Startup");
	}
	public void Shutdown(){
		System.out.println("OperateionSystem Shutdown");
	}
	
}
package org.java.test;
/**
 * @author Lee
 * @param:power 電源  
 * 		  mainBoard 主板 
 *        hardDisk 硬盤    
 *        operateionSystem  操作系統
 * @date:2018.11.27 22:51
 * 
 * 
 * */
public class Computer {
	Power power;
	MainBoard  mainBoard;
	HardDisk   hardDisk;
	OperateionSystem  operateionSystem;
	public Computer(Power power, MainBoard mainBoard, HardDisk hardDisk, OperateionSystem operateionSystem) {
		super();
		this.power = power;
		this.mainBoard = mainBoard;
		this.hardDisk = hardDisk;
		this.operateionSystem = operateionSystem;
	}
	//啓動計算機
	public void StartUp(){  
		this.power.Connect();
		this.hardDisk.Run();
		this.operateionSystem.Startup();
	}
	//關閉計算機
	public void Shutdown(){
		this.hardDisk.Stop();
		this.mainBoard.Off();
		this.power.Disconnect();
	}
}
package org.java.test;
/**
 * @author Lee
 * 功能:測試
 * @date:2018.11.27 23.08
 * 
 * */
public class Program {

	public static void main(String[] args) {
		Power power=new Power();  //創建電源對象
		MainBoard mainBoard=new MainBoard(); //創建主板對象
		HardDisk  hardDisk=new HardDisk(); //創建硬盤對象
		OperateionSystem  operateionSystem=new OperateionSystem(); //創建操作系統對象
		Computer  computer=new Computer(power, mainBoard, hardDisk, operateionSystem);//創建計算機對象
		System.out.println("打開電腦");
		computer.StartUp();
		System.out.println("關閉電腦");
		computer.Shutdown();
		
		
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章