1. 程式人生 > >設計模式(十一)代理

設計模式(十一)代理

類結構:

1、抽象服務

public interface Service {

	public void doLogin(String username,String password);
}

2、真實服務

public class RealService implements Service{

	@Override
	public void doLogin(String username,String password) {
		System.out.println("驗證使用者名稱、密碼!");
	}

}

3、代理服務

public class ProxyService implements Service{
 
	private Service realService=new RealService();
	
	@Override
	public void doLogin(String username,String password) {
		if(!isLogin()){//1.預操作,判斷是否已經登陸
			realService.doLogin(username,password);//2.使用登陸服務
			saveLoginState();//3.後操作,儲存登陸狀態
		}
	}
 
	private boolean isLogin(){//預操作
		System.out.println("查詢登陸狀態!");
		return false;
	}
	
	private void saveLoginState(){//後操作
		System.out.println("儲存登入狀態!");
	}
}

4、消費者

public class Customer {

	public static void main(String[] args) {
		Service service=new ProxyService();
		service.doLogin("tom","123456");
	} 

}

5、執行結果