gof定义:将一个类的接口转换为客户需要的另一个接口,适配器使原本由于接口不兼容而不能在一起工作的类可以一起工作
例子:
在bbs中,定义了一个前台用户信息管理的接口,并在其中声明了3个业务功能方法,还有接口的具体实现类
现在需要设计一个后台管理的业务功能,但在后台管理功能中并不需要前台用户管理中的全部业务方法,同时还需要新的而业务功能并形成后台业务管理功能的接口
前台用户信息管理接口:
public interface UserInfoManagerInterface{ public boolean doUserLogin(UserInfoVO oneUserInfoVO);
public boolean doUserRegister(UserInfoVO oneUserInfoVO);
public boolean doUpdateOneUserInfo(UserInfo oneUserInfoVO); }
|
前台接口的实现类
public class UserInfoManageImple{
public UserInfoManagerImple(){}
public boolean doUserLogin(UserInfoVO oneUserInfoVO){
.....
}
public boolean doUserRegister(UserInfoVO oneUserInfoVO){
....
}
public boolean doUpdateOneUserInfo(UserInfo oneUserInfoVO){
....
}
}
|
后台业务管理功能的接口:
public interface AdminInfoManagerInterface{ public boolean doUserLogin(UserInfoVO oneUserInfoVO);
public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO);
public boolean doDeleteOneUserInfo(UserInfoVO oneUserInfoVO);
public ArrayList doGetAllRegisterUserInfo(); }
|
适配器组件类:
public class UserInfoManagerAdapter extends UserInfoManagerImple implements AdminInfoManagerInterface{ public UserInfoManagerAdapter(){}
public boolean doUserLogin(UserInfoVO oneUserInfoVO){
return super.doUserLogin(oneUserInfoVO);
}
public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO){
return super.doUpdateOneUserInfo(oneUserInfoVO);
}
public boolean doDeleteOneUserInfo(UserInfoVO oneUserInfoVO){
........
}
public ArrayList doGetAllRegisterUserInfo(){
..........
} }
|
以上是类适配器,采用继承的方式来实现的,要少用,下面,采用对象适配器模式
适配器组件类:
public class UserInfoManagerAdapter implements AdminInfoManageInterger{ UserInfoManagerInterace oneUserInfoManageBean=null;
public UserInfoManagerAdapter(){}
public boolean doUserLogin(UserInfoVO oneUserInfoVO){
return oneUserInfoManageBean.doUserLogin(oneUserInfoVO);
}
public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO){
return oneUserInfoManageBean.doUpdateOneUserInfo(oneUserInfoVO);
}
public boolean doDeleteOneUserInfo(UserInfoVO oneUserInfoVO){
........
}
public ArrayList doGetAllRegisterUserInfo(){
..........
}
} |
客户端类:
public class AdminInfoAction{ public void method(){
UserInfoVO oneUserInfoVO=new UserInfoVO();
AdminInfoManagerInterface userInfoManageAdapter=new UserInfoManageAdapter();
userInfoManageAdapter.doUserLogin(oneUserInfoVO);
...........
} }
|
阅读(778) | 评论(0) | 转发(0) |