设计模式-传输对象模式
Posted 技术趋势
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-传输对象模式相关的知识,希望对你有一定的参考价值。
上文(设计模式-服务定位器模式):
背景
传输对象模式是什么?
传输对象模式可以干嘛?
主要起来不同层级的传输对象安全隔离。
个人理解:
传输对象模式类图
源码下载:https://gitee.com/hong99/design-model/issues/I1IMES
实现代码
/**
* @Auther: csh
* @Date: 2020/7/5 16:01
* @Description:uesrVo
*/
public class UserVo implements Serializable {
private String consumerId;
private String userName;
public String getConsumerId() {
return consumerId;
}
public void setConsumerId(String consumerId) {
this.consumerId = consumerId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public UserVo(String consumerId, String userName) {
this.consumerId = consumerId;
this.userName = userName;
}
public String toString() {
return "UserVo{" +
"consumerId='" + consumerId + '\'' +
", userName='" + userName + '\'' +
'}';
}
}
/**
* @Auther: csh
* @Date: 2020/7/5 16:02
* @Description:用户bo
*/
public class UserBo implements Serializable {
List<UserVo> userVos;
public UserBo() {
userVos = new ArrayList <UserVo>();
userVos.add(new UserVo("1","用户1"));
userVos.add(new UserVo("2","用户2"));
}
public void delete(UserVo userVo){
userVos.remove(userVo.getConsumerId());
System.out.println("删除的用户信息"+userVo.toString());
}
//获取所有用户
public List<UserVo> getUserVos(){
return userVos;
}
public UserVo getUser(int index){
return userVos.get(index);
}
public void updateUserInfo(Integer index,UserVo userVo){
userVos.get(index).setUserName(userVo.getUserName());
System.out.println("更新的用户是:"+userVo.toString());
}
}
/**
* @Auther: csh
* @Date: 2020/7/5 16:15
* @Description:
*/
public class Client {
public static void main(String[] args) {
UserBo userBo = new UserBo();
for (UserVo userVo : userBo.getUserVos()) {
System.out.println(userVo.toString());
}
//更新
UserVo user = userBo.getUser(0);
System.out.println(user.toString());
user.setUserName("user2");
userBo.updateUserInfo(0,user);
//重新打印
System.out.println(userBo.getUser(0).toString());
}
}
结果
UserVo{consumerId='1', userName='用户1'}
UserVo{consumerId='2', userName='用户2'}
UserVo{consumerId='1', userName='用户1'}
更新的用户是:UserVo{consumerId='1', userName='user2'}
UserVo{consumerId='1', userName='user2'}
源码下载:https://gitee.com/hong99/design-model/issues/I1IMES
最后
在企业中其实该模式主要体现是不同的层通过不同的实体来接口和返回数据,当然该方法一定程度提升了系统安全,但是真xx的,开发工作量真的最少提升50%以上,不同的层要不同的传输对象来返回....可以参考相关文章
https://blog.csdn.net/weixin_43254907/article/details/88685939?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159393995219195264544052%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159393995219195264544052&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-88685939.first_rank_ecpm_v3_pc_rank_v2&utm_term=vo+ao+Ro
https://blog.csdn.net/qq_32097871/article/details/85099513?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
以上是关于设计模式-传输对象模式的主要内容,如果未能解决你的问题,请参考以下文章