package cn.itcast.结构型模式.代理模式;
// 结构型模式:
// 让类和类进行组合, 获得更大的结构
// 提供一种代理来控制对其他对象对象的访问
interface CommonInterface{
void run();
}
// 我已经写好的系统, 你不能直接访问
class MySystem implements CommonInterface {
@Override
public void run() {
System.out.println("系统启动....");
}
}
// 提供一种代理, 以控制对系统的访问
class MySystemProxy implements CommonInterface{
// 将系统作为我的成员变量
private MySystem system;
private String username;
private String password;
public MySystemProxy(String username,String password){
this.username=username;
this.password=password;
}
// 验证的方法
private boolean checkUserNameAndPassword(){
if(this.username.equals("root")&&this.password.equals("123456")){
this.system=new MySystem();
return true;
}
return false;
}
@Override
public void run() {
if( checkUserNameAndPassword()){
System.out.println("用户名和密码正确,验证通过");
this.system.run();
}else {
System.out.println("用户名或密码错误");
}
}
}
public class ProxyTest02 {
public static void main(String[] args) {
// 创建代理对象,启动系统
MySystemProxy proxy=new MySystemProxy("root","123456");
proxy.run();
}
}