论坛首页 Java企业应用论坛

Design Patterns of the enterprise Rich Client design

浏览 16665 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-12-20  
polygoncell 写道
一百多人看,却没有人回,想来应该是大家不开发rich client吧!估计论坛上朋友99.99% 都是开发Web application的。


呵呵,我来回一个。

对于我这种web application背景的人来说,你这篇文章是很有帮助的。

web开发正面临ajax和rich internet application的变革,你这里提到的GUI开发模式,web developers即使现在不熟,迟早也都要用到的。

美中不足是,你这篇文章对于大多数的web developer来说可能略微深了点,对于GUI开发,如果你能从GUI beginer的角度,由浅入深的介绍(如,事件机制、MVC、best practise,等),相信会对大家更有帮助。
0 请登录后投票
   发表时间:2005-12-20  
partech 写道
用Presentation Model,上EclipseRCP吧,比Swing好100倍。

下面是开发中的绑定框架

http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/databinding-proposal/databinding.html?rev=1.5

swing做得很成熟的公司是不会轻易看上eclipsercp的,
我就不信eclipsercp比swing好一百倍。
我也没见eclipse跑得比IDEA快
也没见eclipse长得比IDEA漂亮
0 请登录后投票
   发表时间:2005-12-20  
snomile 写道
polygoncell兄,我们也做swing客户端,我读了你的帖子,但是不太明白你总结的这些模式都是解决什么问题的,模式都有其固定的应用环境和上下文。而且从MVC这样高层的模式突然跳跃到valueModel这样微观的模式,也确实让我摸不到头脑。

我想问一个具体的模式问题,你们的查询分页是怎么实现的?客户端接口如何写,服务器端需要做哪些工作?如果服务器端还要支持Web接入,那么查询接口如何设计?


Rich client 的开发也是从大局(一个大panel)到微观(比方说一个TextField)。针对大局就会用到presentation model,而针对某个小component就要用到value model。 具体我会在后续文章中举例来解释,相信会比较容易理解。

关于你的问题,我觉得太具体了,和我这篇文章的主题已经无关了,我从原理上说两句。 在rich client中,查询都是基于某个字符串的(当然也可以空查询,就是展示整个表),就好像当我们google的时候,我们至少要输入一个字符,不然是没有结果的。这样获得的查询结果一般来说都少于5000条。在这种情况下,我们完全可以利用EventDispatchThread让查询在后台运行, 将查询结果以50条为一个单位渐进的展现给client,不需要分页, 这就是rich client的优势。不过web application利用ajax也可以实现类似的功能。至于分页,如果一定要用的话,就需要自己设计一个方案了,比方说记住每次分页时最后一条信息的ID等等,要具体情况具体分析。
0 请登录后投票
   发表时间:2005-12-20  
myace 写道
不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。


你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。
0 请登录后投票
   发表时间:2005-12-20  
jackyz 写道
polygoncell 写道
一百多人看,却没有人回,想来应该是大家不开发rich client吧!估计论坛上朋友99.99% 都是开发Web application的。


呵呵,我来回一个。

对于我这种web application背景的人来说,你这篇文章是很有帮助的。

web开发正面临ajax和rich internet application的变革,你这里提到的GUI开发模式,web developers即使现在不熟,迟早也都要用到的。

美中不足是,你这篇文章对于大多数的web developer来说可能略微深了点,对于GUI开发,如果你能从GUI beginer的角度,由浅入深的介绍(如,事件机制、MVC、best practise,等),相信会对大家更有帮助。


有很多书非常详细的讲解了这些相关内容,如果我来写得话,也不会有什么新意,建议你去看看介绍swing的书,我推举"Swing Second Edition" http://www.manning.com/books/robinson2/source
当然oreilly的那本也值得一读。
0 请登录后投票
   发表时间:2005-12-20  
我们也一直在用swing做前台开发,期待楼主的后续文章。。。
0 请登录后投票
   发表时间:2005-12-21  
polygoncell 写道
myace 写道
不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。


你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。

springrcp引入了jgoodies的binding和form,觉得就是一个对jgoodies的再封装,并为rcp的开发提供spring特性的支持。

n久没有看过了,不知有没有什么变化
0 请登录后投票
   发表时间:2005-12-21  
polygoncell 写道
myace 写道
不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。


你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。

springRichClient使用了jgoodies。
它提供了Application、Window、Page、View、Command等概念(很像eclipse)的实现。集成了国际化、ImageSource、远程访问、安全控制等。
它里面最值得学习的就是Form部分,封装了jGoodies。
0 请登录后投票
   发表时间:2005-12-21  
nkoffee 写道
snomile 写道
我们也总结了一些模式,分析模式包括:数据展现器、数据提供器、编辑器这些模式等,设计模式包括用fp方式实现的布局抽象,使用JGoodies等实现的一些控件抽象等。
但我觉得我们总结的模式和polygoncell兄总结的模式完全不是一个层面的。

是 Martin Fowler 总结的,jgoodies的binding就是在Presentation Model这个模式下的产物。
Martin Fowler 总结了若干富客户端常用模式,做好富客户端,对这些模式的理解是必不可少的。
http://martinfowler.com/eaaDev/
这个页面右边有老马总结的富客户端设计模式
Rich Client
Window Driver
Model View Presenter
Event Aggregator
Notification
Mediated Synchronization
Flow Synchronization
Presentation Model
Presentation Chooser


模式本身是Martin Fowler总结的,我也在文中指出了。不过如何选择正确的模式进行开发是我基于实践开发总结出来的。
0 请登录后投票
   发表时间:2005-12-22  
nkoffee 写道
partech 写道
用Presentation Model,上EclipseRCP吧,比Swing好100倍。

下面是开发中的绑定框架

http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/databinding-proposal/databinding.html?rev=1.5

swing做得很成熟的公司是不会轻易看上eclipsercp的,
我就不信eclipsercp比swing好一百倍。
我也没见eclipse跑得比IDEA快
也没见eclipse长得比IDEA漂亮


野史一段,仅供参考:

     http://news.csdn.net/news/newstopic//20/20433.shtml
0 请登录后投票
论坛首页 Java企业应用版

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