在网站的优化(四)--代码优化-解决线程安全有这么一句话“而Web 开发中常用的贫血模型对象都是些无状态对象。不过从面向对象设计的角度看, 无状态对象是一种不良设计”
这里的无状态贫血模型对象,应该是指的是比如:
public class StatelessBeanService {
// 虽然有billDao属性,但billDao是没有状态信息的,是Stateless Bean.
BillDao billDao;
public BillDao getBillDao() {
return billDao;
}
public void setBillDao(BillDao billDao) {
this.billDao = billDao;
}
public List<User> findUser(String Id) {
return null;
}
}
常见的dao注入如下,由于dao本身是无状态的,所以仅包含dao的该类也是无状态的。并且不包含复杂业务逻辑,所以他也是个贫血模型。
贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。
无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。
网友评论