package vo; public class User { private int id; private String username; private String password; public User(){ System.out.println("user对象创建成功"); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
UserDao.java
package dao; import vo.User; public interface UserDAO { void insert(User user); void test(); }
TaskDao.java
package dao; public interface TaskDAO { void delete(String tid); }
package dao.imp; import dao.TaskDAO; public class TaskDAOIMP implements TaskDAO { @Override public void delete(String tid) { System.out.println("删除任务"); } }
package dao.imp; import vo.User; import dao.UserDAO; public class UserDAOIMP implements UserDAO { @Override public void insert(User user) { System.out.println("UserDAOIMP的insert(user)方法被调用"); } @Override public void test() { System.out.println("UserDAOIMP的test()方法被调用"); } }
package test; import java.lang.reflect.Proxy; import proxy.DynaProxy; import dao.TaskDAO; import dao.UserDAO; import dao.imp.TaskDAOIMP; import dao.imp.UserDAOIMP; public class Test { public static void main(String[] args) { UserDAOIMP userDAOIMP = new UserDAOIMP(); UserDAO userDAO = (UserDAO)new DynaProxy().createOject(userDAOIMP); userDAO.test(); System.out.println("*************************"); TaskDAO taskDAO = (TaskDAO)new DynaProxy().createOject(new TaskDAOIMP()); taskDAO.delete("1"); } }