论坛首页 Java企业应用论坛

请教:什么是fine-grained ,coarse-grained

浏览 16225 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-11-19  
谢谢
   发表时间:2003-11-19  
fine-grained :细颗粒度
coarse-grained:粗颗粒度
0 请登录后投票
   发表时间:2003-11-19  
能讲详细一点吗,什么情况下算是细颗粒度,什么情况下是粗颗粒度
0 请登录后投票
   发表时间:2003-11-20  
Fine-grained PO一般来说管理着持久数据与表列的一对一映射. Coarse-grained  PO通过多个Fine-grained PO 来管理持久数据. 这样, 属于Coarse-grained中的Fine-grained PO, 其生命期受制于Coarse-grained  PO,  超过了Coarse-grained  PO生命期的Fine-grained PO是没有意义的, 因为它们是做为一个整体出现的. 另外, 客户只能通过Coarse-grained  PO来间接的访问其中的Fine-grained PO.
因为Coarse-grained是做为一个整体出现的, 所以Lazy initialization是不可能的,  对Coarse-grained来说, 要么一起装入, 要么什么也不装入,  一起装入也就造成了较长的响应时间, 另外, Coarse-grained也会影响我们写程序时运用inheritance 和 polymorphism(这一点, 希望能得到其它朋友的见解) 

EJB就其本身只能做成一种Coarse-grained PO(Sun网站上也不得不这样说), 而Hibernate PO 则可以做成Fine-grained 和Coarse-grained, 显然选择的余地多.
0 请登录后投票
   发表时间:2003-11-20  
感谢bruce的回答。不过解释得太抽象,能不能说得通俗一点。另外能否解释一下Lazy initialization到底是什么,在Hibernate中好像到处都涉及到。
0 请登录后投票
   发表时间:2003-11-20  
谁能告诉我吗?我想这些概念对理解应用hibernate有很大的帮助?
0 请登录后投票
   发表时间:2003-11-21  
Class Initialization通常是耗时的, 有时initialized class可能未必真正的使用到, 为了提高效率. 我们才用lazy initialization.

Lazy initialization 是一种推迟initialization 直到真正需要的时候才initialization的方式.

不仅是在Hibernate中有, 其实平时我们平时自已写程序也可以实现.
0 请登录后投票
   发表时间:2003-11-24  
Fine-grained和Coarse-grained 一般是指远程方法调用的接口的颗粒大小.
比如, 我有一个远程对象, 他有很多属性和对应的getter和setter方法,
如果我们远程调用对象每个属性的getter和setter方法, 就会产生很多远程方法调用. 这就是Fine-grained interface, 会造成性能问题

所以我们可以用一个setdata或getdata的方法把一些属性的访问封装起来, 只用一个远程方法传输一个data transfer object来对该对象进行赋值和访问, 这就是Coarse-grained interface
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics