如何定义架构分层传输对象

ztcwh 发布于 2020/06/01 11:52
阅读 199
收藏 0

NGINX Sprint China 2022--NGINX年度旗舰盛会,已开启免费预约!>>>

上图是阿里巴巴开发文档上定义的规范约束

 

问题一:

是不是每个层都有自己的输出对象,及输入对象?

例如:

DAO层:输出对象为DO,输入对象Query

SERVICE层:输出对象为BO,输入对象Query

VIEW层:输出对象为VO,输入对象Query

 

问题二:

每一层的输入对象Query,不是同一个对象,只是对象名称一样,但在不同包里,是这样理解吗?

例如:

DAO层:com.xxx.dao.Query

SERVICE层:com.xxx.service.Query

VIEW层:com.xxx.view.Query

 

问题三:

按照上面所说,共有6个传输对象,那对象之间如何进行转换?涉及到如下转换问题:

1、属性名称相同,类型不同;

2、类型相同,属性名称不同;

我已代码测试过,Apache BeanUtils 性能让人担忧,而 Spring BeanUtils 功能太少。

 

问题四:

以下哪种方式定义属性名称会更好些呢?

方式一:

	private Integer id;
	private String username;
	private String password;
	private Date updateTime;
	private Date createTime;
	private Set<RoleUserDO> roleUserDOs = new HashSet<RoleUserDO>(0); // 注意这里
	private Set<ActionUserDO> actionUserDOs = new HashSet<ActionUserDO>(0); // 注意这里

方式二:

	private Integer id;
	private String username;
	private String password;
	private Date updateTime;
	private Date createTime;
	private Set<RoleUserDO> roleUsers = new HashSet<RoleUserDO>(0); // 注意这里
	private Set<ActionUserDO> actionUsers = new HashSet<ActionUserDO>(0); // 注意这里

 

求各路大神指点迷津!!!

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部