精华帖 (2) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-01
carlkkx 写道 vlinux 写道 接口就是要隔离你们之间的实现。你不用关心他是怎么解析这个XML的,你要做的不应该只是想办法让你的JavaBean能和这个约定的XML进行绑定么?
你现在作的FieldMap其实也是要想办法将数据绑定到对方定制的XML上而已,但是事实上我们有更灵活的轮子,有很多种框架能将JavaBean和XML数据进行相互绑定、转换的,你不妨可以找找。 也许在我方本更不存在静态定义的javaBean,假设现在突然来了个需求,说客户希望能查询XXX数据,这个时候服务端给出了请求和响应的XML格式,然后客户端开发人员对于这份数据也许压根就不会定义一个静态的JavaBean,原来的话,直接解析XML得到数据然后放到GUI,现在话可能不用解析XML了,直接拿到FieldMap数据结构然后让其显示到GUI。 恩,这里细细品味还是有点味道,因为之前,恩应该说现在正在遇到这种情况。我确实被迫定义了非常多的JavaBean去对付来自后台的查询(一个查询接口得两个JavaBean去映射,请求一个,返回一个,甚至两个)。如果用这样的数据结构确实能解决我不少的问题,不过我还可以直接用JQuery去解析那些XML报文为JSON对象,这是我之前考虑的解决方案。 你觉得呢?用JavaScript去解析XML为JSON对象你觉得怎样? |
|
返回顶楼 | |
发表时间:2009-12-01
whaosoft 写道 没有 用过FieldMap ~
FieldMap只是LZ自己定义的数据结构罢了,呵呵。 我在想,是不是可以用来解决我的一些问题,因为目前我遇到的情况是:后台查询出的结构,我如果定义成JavaBean去与之绑定,那么我的JavaBean复用率非常低...此时如果我每个请求都必须用2个甚至多个JavaBean去映射,那我的类会无限膨胀...而且是事实我已经遇到了... 当然,我前边反对的观点是建立在作为后台稳定通用接口上的,此时JavaBean的复用率比较高,用JavaBean绑定XML的方式是要比FieldMap合适。 |
|
返回顶楼 | |
发表时间:2009-12-01
解析那些XML报文为JSON对象,这是我之前考虑的解决方案。
你觉得呢?用JavaScript去解析XML为JSON对象你觉得怎样? ———————————————————————————— 我觉得只要有好的自动化工具直接将XML转化为JSON对象,而且处理JSON对象又非常方便的话,那当然也不错。 |
|
返回顶楼 | |
发表时间:2009-12-01
引用 我在想,是不是可以用来解决我的一些问题,因为目前我遇到的情况是:后台查询出的结构,我如果定义成JavaBean去与之绑定,那么我的 JavaBean复用率非常低...此时如果我每个请求都必须用2个甚至多个JavaBean去映射,那我的类会无限膨胀...而且是事实我已经遇到了... 这种情况我有过体会,客户端静态定义大量的与服务器沟通的数据结构,实在是麻烦而且数据结构没有什么复用可言。 |
|
返回顶楼 | |
发表时间:2009-12-01
最后修改:2009-12-01
恩,想想,出于安全考虑,还是不能直接由浏览器做这么重要的后台XML报文封装的操作。而且一些关键的数据:比如当前登录的操作员编号等,还是从后台的Servlet给出比较好。
特定环境下,用你的FieldMap这种数据格式会比较合适,至少在我这里比较合适。我会在下个项目中,如果还是C++作后台,Java作前台,之间用XML交互的情况,我会建议我的上级采用FieldMap这种数据结构去替代现有大量膨胀的JavaBean,也许会加一些改进。比如加入xpath支持以应对复杂点的XML结构... |
|
返回顶楼 | |
发表时间:2009-12-01
引用 恩,想想,出于安全考虑,还是不能直接由浏览器做这么重要的后台XML报文封装的操作。而且一些关键的数据:比如当前登录的操作员编号等,还是从后台的Servlet给出比较好。 因为我这边客户端并不是浏览器,而是Java Swing客户端,所以没有你说的这些问题。 我现在封装的通信API类似于这样: FieldMap fm = new FieldMap("Bond").putField("id","060001").putField("name","06国债01"); CommonRemoteMsgService.requestRemoteService("服务名",fm,new CommonMsgCallback(){ public void onMessage(CommonMsg msg){ if(msg.isError()){ //错误处理 } else{ //正常处理 msg.getFieldMap(); } } }); 实际上我后面还要进一步做FieldMap与GUI绑定的部分,就像前面说的这些:FieldMapFormBinder,FieldMapSetListBinder,FieldMapSetTable 这些弄完了对于开发效率才有比较大的提升,对于一般的CRUD将非常方便的完成,即使不是一般的CRUD,也是能带来很多便捷。 |
|
返回顶楼 | |
发表时间:2009-12-01
lz 的想法是很多人(特别是老板级别)的想法.
共同点就是 : 妄想用一个通用的的东西来解决所有的问题. fieldmap 这样的数据存储结构玩玩还可以. production 上用这样的设计我认为是不能接受的. |
|
返回顶楼 | |
发表时间:2009-12-01
最后修改:2009-12-01
哈哈,如果他这么想,确实是妄想了。不过貌似能解决某些特定环境下的部分问题。
我是对我遇到的情况中类不可复用是有着及其确定的把握的。情况真的很特殊,并不是所有的IT公司都和我所遇到的一样,在JavaEE年代之前就已经有一个完善的c++后台,然后和前台的交互都是用XML报文。 |
|
返回顶楼 | |
发表时间:2009-12-01
引用 共同点就是 : 妄想用一个通用的的东西来解决所有的问题. fieldmap 这样的数据存储结构玩玩还可以. production 上用这样的设计我认为是不能接受的. 没有什么东西可以解决所有的问题,有句名言怎么说的来着:不要对整个世界抽象,只对你的问题域抽象。 客户端维护大量的静态数据结构实无必要,也可能我是轻量级惯了。 |
|
返回顶楼 | |
发表时间:2009-12-01
引用 在JavaEE年代之前就已经有一个完善的c++后台,然后和前台的交互都是用XML报文。 我这边一个后台,连C++都不是,是纯C,呵呵。 |
|
返回顶楼 | |