設計模式(十一)代理
阿新 • • 發佈:2018-12-04
類結構:
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、執行結果