zoukankan      html  css  js  c++  java
  • 对象设计中的:贫血模式和充血模式

     其实贫血设计模式和  充血设计模式在称呼上 有点炒作之嫌

    这两个概念其实在很早以前,大家开始接受OO思想的时候 就已经开始争论的一个话题

    简而言之  :

    贫血模式  就是 一个object 中 内部的定义  只有字段和属性,以及少量关于这些字段  增删改查的方法,没有具体的业务逻辑,有点struct 的感觉。所以很多人称贫血模式的对象不算做对象,只能称之为数据结构。其实我个人持中立意见,首先在很多时候一个对象我们只关注他的属性,并不关心他的具体业务方法,比如商品。我们往往是通过订单的方法来控制商品的生命周期。另外一方面贫血模式又有点违背oo的思想。因为oo的本意是触发模式,就是发生了什么,对这个object产生了影响,随之这个object 会进行哪些行为。这一点贫血模式基本上都是将其封装到 业务逻辑层的方法中进行统一的处理的。

    充血模式:相对于贫血模式,就是将对象的业务方法也加在对象的类中。让一个对象可以有能力做很多本来属于他的职能范围内的东西。可以说是将对象注入了灵魂。所以更符合oo 的味道。记得自己在刚做iwms 时,很不适应,其中很重要的一点就是博然等人当时引入的富对象模式,就是将大量的static 方法加载到对象之中,让对象在bll层可以直接运行自身的静态方法。这一点也是在后来的学习当中认识到的,当时并不觉得这样写的好处。后来看了博然的简历,看到了充血模式,再上网查找这些,才发现了其中意义,此处感谢博然。

  • 相关阅读:
    as3工程和flex工程的区别
    Timer的repeatCount和currentCount的区别
    mouseChildren为false后,
    flex编译时,会把trace语句也编译进去
    stage和root的区别
    flex编译时,会把trace语句也编译进去
    水瓶座(1.202.19)更多星座运程
    如何更改titleWindow组件上的title字体大小?
    转贴关于AsWing和MXML 选项
    Eclipse中的文本编辑器使用技巧
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219818.html
Copyright © 2011-2022 走看看