`
yongmeiwang
  • 浏览: 25729 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

也谈对象的粗粒度

阅读更多

粗粒度:表示类别级,即仅考虑对象的类别(the   type   of   object),不考虑对象的某个特定实例。比如,用户管理中,创建、删除,对所有的用户都一视同仁,并不区分操作的具体对象实例。   
细粒度:表示实例级,即需要考虑具体对象的实例(the   instance   of   object),当然,细粒度是在考虑粗粒度的对象类别之后才再考虑特定实例。比如,合同管理中,列表、删除,需要区分该合同实例是否为当前用户所创建。  
     一般权限的设计是解决了粗粒度的问题,因为这部分具有通用性,而细粒度可以看成业务部分,因为其具有不确定性。

也可以认为對象的粒度就是對象所容納的邏輯 ,粗粒度容納的邏輯多,細粒度容納的邏輯少。

     对客户暴露了太多细节的相对来说就是细粒度的,比如你的一个Java   Bean,为它所有属性都提供了getter,setter方法,就是属于细粒度的,而如果提供类似   Object   getData(),或者setData(Object   o)这样方法的类就是粗粒度的。

     当客户需要数据的时候,它当然应该知道它的数据是什么样的啊,所以getData(),setData()时的Object   对象对于用户并不是黑箱,用户可以只用一个操作就完成数据的存取,这就是粗粒度的.粒度应该是相对与该类的使用者来说的,如果存取只需要有限的操作,而没有暴露太多的底层实现则是粗粒度的,相反你把每个属性暴露给用户让它都可以对之进行操作则是细粒度的.楼上所说实体Bean,如果我们对它的每个属性都提供getter,setter方法,却不提供getData(),setData()这样的操作,则也是细粒度的,所以在设计Enty   Bean时应该避免设计成细粒度的,因为这为增加网络开销.

     举个例子,   ejb中的实体bean就是粗粒度的   hibernate中的po就可以做到细粒度  
     如果还是不懂,那么更简单的例子   


  一个user类   其中有email属性   一个用户email很多个     你可以用一个list来表示很多个email  
     也可以再设计一个email类   然后user的email属性是email类组成的,那么后一种设计的粒度就更细。它抽象出了更多的模型对应现实逻辑。  

     而对于像Spring一样的轻量级容器则更适合管理细粒度的对象,因为它使用IoC使得省去了大量的JNDI查找,也不再需要额外的部署。由于几乎不依赖于容器,实现也更为简单。

     最后,粒度这个问题应该在设计时根据具体需求而决定,容器环境,性能要求等等都具有较大的影响.我发现在Java版里大家关注的很多都是非常细节的问题,至于设计方面的讨论太少了,现在觉得设计真的是太关键,在前期多花点工夫,在代码实现,维护,扩展,以及其他非功能性需求如性能等方面的满足上也许我们就不至于会那么焦头烂额了.欢迎大家多发些这种类型的讨论帖子,大家共同提高~~

3
0
分享到:
评论
1 楼 liangziyyl 2008-10-28  
Entity   Bean不适合用于管理细粒度的对象,因为对于细粒度的对象来说,实现、部署EJB和使用JNDI访问开销太高

相关推荐

    超线程技术和粗粒度多线程技术

    超线程技术和粗粒度多线程技术 超线程技术是指利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了 CPU 的闲置时间,提高了 CPU 的...

    基于粗粒度模型的蚁群优化并行算法

    ### 基于粗粒度模型的蚁群优化并行算法 #### 1. 引言 蚁群优化算法(Ant Colony Optimization, ACO)是一种启发式搜索算法,源自自然界中蚂蚁寻找食物的行为。该算法最初由意大利学者M. Dorigo等人在20世纪90年代...

    论文研究-集成FCM与信息融合的粗粒度级信息的挖掘算法.pdf

    提出一种基于模糊认知图(Fuzzy Cognitive Map,FCM)与信息融合集成挖掘的面向多样例粗粒度信息获取方法,FCM可以建立多细粒度概念与粗粒度概念之间的模糊认知关系,信息融合则用于构建粗粒度级概念的信息表达,NHL...

    粗粒度并行遗传算法的计算性能及其应用研究.nh

    粗粒度并行遗传算法的计算性能及其应用研究.nh

    论文研究-基于分布式粗粒度并行计算的遗传规划算法研究.pdf

    针对经典遗传规划算法(CGP)存在容易早熟收敛、运行效率低的缺陷,提出一种将分布式计算与遗传规划算法结合的计算...实验表明,基于分布式粗粒度并行计算的遗传规划算法(CGGP)计算性能优于经典遗传规划算法(CGP)。

    CGPA.zip_parallel genetic_并行_并行 优化_粗粒度_粗粒度并行

    基于三个子种群的粗粒度并行遗传算法用于解决函数优化问题

    示例4 如何编排几个细粒度服务形成粗粒度服务

    本示例将探讨如何将几个细粒度的服务整合成一个粗粒度的服务,以提高效率、简化管理和优化整体系统架构。 首先,理解细粒度服务与粗粒度服务的区别至关重要。细粒度服务(Microservices)是指将业务功能拆分成非常...

    异构粗粒度可重构处理器的自动任务编译器框架设计.pdf

    总的来说,该文提出的GR-C语言和自动任务编译器框架为异构粗粒度可重构处理器的编程提供了新途径,简化了开发者的工作,同时也提升了系统的整体性能。这一框架的实现和应用对于未来可重构计算系统的设计和优化具有...

    面向对象编程中“粒度”的概念

    在服务导向架构(SOA)中,服务的粒度也非常重要。细粒度服务执行单一任务,处理少量数据,通常作为构建更大功能的基础。而粗粒度服务执行更复杂的业务逻辑,交换更多数据,可以直接被终端应用或其它粗粒度服务使用...

    基于卷积神经网络的粗粒度数据分布式算法.pdf

    粗粒度数据是指只关注对象类别而不涉及具体实例的数据,它在综合信息评价和大数据挖掘中具有重要价值。然而,由于其抽象性和缺乏细节,处理起来通常比较复杂。传统的粗粒度数据挖掘方法,如基于决策树或关联度计算的...

    SVM粗/细粒度粒子

    在OpenCL SVM中,有两种主要的内存访问粒度:粗粒度和细粒度。理解这两者之间的区别对于优化应用程序至关重要。 1. **粗粒度缓冲区**: - 在粗粒度SVM中,数据区域被分配给单一的计算设备,通常是GPU。这意味着...

    权限控制之粗粒度与细粒度概念及实现简单介绍

    权限控制之粗粒度与细粒度概念及实现简单介绍 权限控制是信息安全中的一种重要机制,主要用于控制用户对资源的访问权限。权限控制可以分为两种类型:粗粒度权限控制和细粒度权限控制。 粗粒度权限控制是指对资源...

    用于个性化数据挖掘的粗粒度分布式深度学习.pdf

    本篇论文提出了一种粗粒度分布式深度学习方法,目的是为了解决在广域分布式网络环境下,深度学习难以提升处理精度、通信代价和响应速度等问题。该论文由盛益强、赵震宇、廖怡撰写,发表于《网络新媒体技术》第五卷第...

    基于词典属性特征的粗粒度词义消歧1

    基于词典属性特征的粗粒度词义消歧 在自然语言处理领域中,词义消歧是长期以来的一大难题。本文提出了一种基于词典属性特征的粗粒度词义消歧方法,该方法依据《现代汉语语法信息词典》中对词语多义的属性特征描述,...

    基于粗粒度数据流架构的稀疏卷积神经网络加速

    卷积神经网络(convolutional neural network, CNN)在图像处理、语音识别、自然语言处理等领域实现了很好的性能.大规模的神经网络模型通常遭遇计算、存储等资源限制,稀疏神经网络的出现有效地缓解了对计算和存储的...

Global site tag (gtag.js) - Google Analytics