匿名对象的方案虽然达到了我们想要的效果,但对比实体对象方案,又有什么不同呢,下面我们来对比一下:

  1. 数据传递性、复用性:
    -匿名对象:基本上属于一次性数据,无法整体传递,无法复用。
    +实体对象:传递性,复用性良好。
  2. 对重构、方法提取的支持:
    -匿名对象:由于数据无法传递,写出的代码很难进行重构,我就普写过几百行代码而无法提取子方法重构的方法。
    +实体对象:数据对代码重构、方法提取支持良好。
  3. 对缓存命中率的影响:
    -匿名对象:数据与具体的业务场景(参数、条件等)密切关联,缓存命中率可能会较低。
    +实体对象:数据易复用,缓存命中率可能会较高。
  4. 不同层次的数据模型自动映射转换(AutoMapper等)
    -匿名对象:属性不定,类型不定,难以转换。
    +实体对象:轻松实现映射转换。
  5. 数据利用率:
    +匿名对象:数据按需获取,利用率高,基本无浪费。
    -实体对象:数据都是整体取出,利用率低,浪费大。
  6. 程序性能影响:
    +匿名对象:容易写出运行高效的代码,性能良好。
    -实体对象:容易写出性能低下的代码。

  通过上面的对比,希望能对方案的选择提供一些参考,至于如何取舍,最终选择什么方案,只能自己根据业务的特点来权衡了,合适用哪个就用哪个。

转载于:https://www.cnblogs.com/techliang666/p/8158063.html

匿名对象方案与实体对象方案对比相关推荐

  1. CAD镜像一个实体对象

    以一条线段为基准线,创建对象的反射副本. 1.单击菜单栏,"修改->镜像". 2.单击编辑工具栏"镜像命令"按钮. 3.(1)在命令行中输入Mirror, ...

  2. 将Object类对象转为对应实体类对象

    问题出现的原因: 由于Object类是Java中的"总父类",所以在转换成其他类时会出现类型转换异常. 方式一 利用 com.fasterxml.jackson.databind. ...

  3. springboot中如何使用RedisTemplate存储实体对象

    RedisTemplate是spring封装的操作redis的接口,使用起来很方便,但也有很多坑,比如存储javabean类. 网上找了很多资料,很多都语焉不详,几乎毫无作用. redis存储对象需要 ...

  4. 鲁棒图的三元素:抽象对象,实体对象和控制对象

    鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么是鲁棒图呢? 8.2.1  鲁棒图的3种元素 鲁棒图包含3种元素(如图8-2所示),它们分别是边界对象.控制对象.实体对象: 边界对象 ...

  5. object转成实体对象_Object.assign 原理及其实现

    编者按:本文转载自掘金专栏,由作者 木易杨说 授权奇舞周刊转载. 引言 上篇文章( https://github.com/yygmind/blog/issues/25 )介绍了赋值.浅拷贝和深拷贝,其 ...

  6. java to对象_java中同类对象之间的compareTo()和compare()方法对比分析

    首先我们都知道java中的比较都是同一类对象与对象之间的比较,就好像现实生活中比较人和人的年龄一样,你不会去把人的年龄和人的身高来比较,这显然是没有意义的. java中同类对象之间的比较又分为两种,基 ...

  7. NBear.Mapping使用教程(5):实体对象与NameValueCollection,Dicitonary以及NBear.Mapping性能

    在上篇中,介绍了使用NBear.Mapping进行实体对象与ADO.NET对象的互转功能,这可能是我们开发过程中最常的一种映射了.除此之外,NBear.Mapping还支持实体对象与NameValue ...

  8. hql查询之实体对象查询

    一.实体对象查询 实体对象查询是hql查询的基础,作为一种对象查询语言,在查询操作时和sql不同,查询字符串中的内容要使用类名和类的属性名来代替.这种查询方法相对简单,只要有SQL功底,使用hql是很 ...

  9. UML交互图——鲁棒图的三元素:抽象对象,实体对象和控制对象

    转自:http://www.cnblogs.com/xiaruyan/archive/2011/04/24/2026278.html 鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么 ...

最新文章

  1. 8000字 | 32 张图 | 一文搞懂事务+隔离级别+阻塞+死锁
  2. 全长转录组之基因和转录本鉴定
  3. win10下安装TensorFlow(CPU only)
  4. Linux双机热备解决方案之Heartbeat
  5. 中国程序员容易发音错误的单词
  6. 小demo, java swing窗口编程(JDK 1.6) (二)
  7. ASP.NET Core集成现有系统认证
  8. Android之ViewPager使用(用美女做的背景,给你疲惫的眼睛视觉冲击)
  9. leetcode刷题可以用python吗_LeetCode刷题——第四天(python)
  10. 为什么我们要使用min-height和max-height样式属性?
  11. JAVA 多线程学习总结
  12. 使用Idea合并svn分支到主干上
  13. Mac 电脑锁屏快捷方法
  14. python计算手机销量年增长率_「净资产增长率」Python量化数据获取:总资产同比增长率与净资产同比增长率 - seo实验室...
  15. 戴尔服务器显示器接口类型,戴尔推出UltraSharp U4021QW显示器 采用雷电3接口和5K×2K曲面屏...
  16. CentOS7精简版基本配置
  17. 行内和块级元素区别?如何让行内元素设置宽高?
  18. visual studio安装进度条为零,检查网络链接;aka.ms拒绝连接,因为使用的HSTS...;无法访问github.com;外网无法访问
  19. raid5通常需要几块盘_组成raid5阵列最少需要几块硬盘?
  20. Oracle-SQL-group by-报错:不是单组分组函数

热门文章

  1. xbox360fsd更新游戏封面_Steam推出了新版游戏库,界面更为简洁
  2. Linux离线的nginx安装启动,linux-离线安装nginx
  3. ajax写删除程序,ajax处理程序删除标记
  4. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程
  5. 同时买票是怎么实现的_腰包怎么背才更新潮?教你3种时尚背法,告别土味老气风...
  6. 惠普m154a状态页_惠普新品NS—1005w无线智能应用与驱动安装篇
  7. leetcode刷题:相交链表
  8. 2020.2idea怎么创建html项目_如何为IDEA项目创建GitHub存储库和本地Git存储库
  9. 编程通用知识 系统编程
  10. Scala 安装(win)