代理对象和被代理对象必须实现同一个接口。
以下定义了接口ILogin,接口的实现类Login,代理LoginProxy,测试类Test
1 package proxy;
2
3 public interface ILogin {
4 public void login(String username,String password);
5 }
6
7 package proxy;
8
9 public class Login implements ILogin{
10 public void login(String username, String password) {
11 // TODO Auto-generated method stub
12 if("tazi".equals(username)&&"123".equals(password))
13 System.out.println("login success!");
14 else
15 System.out.println("login fail!");
16
17 }
18 }
19
20
21 package proxy;
22
23 public class LoginProxy implements ILogin{
24 Login loginHandler;
25 public LoginProxy(Login loginHandler) {
26 // TODO Auto-generated constructor stub
27 this.loginHandler=loginHandler;
28 }
29 public void login(String username, String password) {
30 // TODO Auto-generated method stub
31 if(username==null||password==null)
32 System.out.println("用户名、密码不能为空!");
33 else {
34 loginHandler.login(username, password);
35 }
36 }
37 }
38
39
40 import proxy.ILogin;
41 import proxy.Login;
42 import proxy.LoginProxy;
43
44 public class Test {
45 public static void main(String[] args) {
46 ILogin loginHandler=new LoginProxy(new Login());
47 String username=null,password=null;
48 loginHandler.login(username, password);
49 username="tazi";password="123";
50 loginHandler.login(username, password);
51
52 }
53 }
输出:
用户名、密码不能为空!
login success!