Chinaunix首页 | 论坛 | 博客
  • 博客访问: 703819
  • 博文数量: 147
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 10:36
文章分类

全部博文(147)

文章存档

2011年(1)

2010年(1)

2009年(35)

2008年(110)

我的朋友

分类: Java

2008-11-29 20:02:04

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);

...........

}
}

阅读(737) | 评论(0) | 转发(0) |
0

上一篇:mysql日志

下一篇:mysql权限管理

给主人留下些什么吧!~~