美文网首页随笔
理解《大型网站技术架构》

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

作者: Grey____ | 来源:发表于2019-06-26 19:30 被阅读0次

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


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

    相关文章

      网友评论

        本文标题:理解《大型网站技术架构》

        本文链接:https://www.haomeiwen.com/subject/eiyhcctx.html