MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 面向对象还是面向数据,该怎么解决

面向对象还是面向数据,该怎么解决(2)

www.MyException.Cn  网友分享于:2015-08-27  浏览:12次

可以用来解决不同类型的问题。

界面上经常出现“总-分”模式,就是先看列表,然后从列表再看某一项的详细信息,
列表往往来自多表关联的结果,更适合采用你说的”数据驱动“,直接为特定的SQL查询设计DTO,
而详细信息页面往往是一个对象入口,用1-N的关系检索出相关信息(就像你说的用户-角色),
那么用你说的”对象驱动“模式更合适。

手段本身没有优劣之分,就看用的是不是恰当,
即便从数据库开始设计,作出对应的java类,也不影响再进一步封装不和表对应的DTO。

楼主认为呢?
------解决方案--------------------
面向对象的思想发展与C/S结构的基于数据库的软件架构,对象在客户端和服务器创建之后可以一直使用重复利用,所以C/S模式可以充分利用其优点,分散其缺点

但对于大规模用户访问的b/s结构不同,客户端不能创建对象,对象全部在服务器端创建,如果不平凡销毁再创建,
那么对于访问量大的系统内存需求却是难以估量,平凡销毁再创建同样是一个灾难

所以,没看过门户,社交类网站会用面向对象来设计

面向对象的B/S还是适合小型的(员工数量低、没有分公司)企业服务软件的

面向数据对开发人员要求较高,web, server,datebase都需要精通,全能型的

不管如何,没有哪种架构是绝对使用于的,需要综合考虑

------解决方案--------------------
完全没看出来楼主说的面向数据有何优势,呵呵
关联关系的n+1问题,完全是设计问题,1vn一般的不会在页面上列出1和n,都是用lazy来延迟的,即使全列出来也可以用fetch来做,比直接写sql简单很多,比直接用dto少了很多冗余,因为bean可以复用
1v1的就不用说了,fetch出来即可,一样

复杂的业务逻辑避免不了要用到sql,但是这种逻辑不是很多,大部分还是那几种关联和简单的crud

现在的架构,很大的优势是,大部分都是自动生成,自动映射,冗余低,设计贴近现实。


------解决方案--------------------
引用楼主 dongpoyezi 的帖子:

做过一些j2ee的项目,用过不同的方式,但是还是有一些困惑,实际上我想很多人都有或者曾有过这样的困惑,有困惑的人大家一起讨论下,过来人也希望能指点下.我暂且称之为面向对象和面向数据的方式.

1)面向对象方式:一个典型的j2ee系统一般分为页面,后台,以及数据库.在很多情况下都是根据需求先去设计数据库,那么在根据数据库来设计对象(pojo),在pojo中维护数据库表之间的关系.最后把这些对象在页面上展现出来.当然这只是很简…

------解决方案--------------------
像Hibernate是根本不会去获取Role表的数据的
---
应该为在得到User对象是,Set<Role>还未初始化,这时还未获取Role表数据。当你开始访问roles属性时才会去真正加载Role表中的数据

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有