随笔

理解《大型网站技术架构》

2019-06-26  本文已影响0人  Grey____

在网站的优化(四)--代码优化-解决线程安全有这么一句话“而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),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。


参考:
贫血/充血模型
无状态对象和有状态对象
谈一谈无状态和无副作用

上一篇下一篇

猜你喜欢

热点阅读