托经济危机的福,终于有时间更新我的 Grape 了。Grape 到底是什么?大家看看 Grape 核心就知道了。Grape 的核心包括数据库的封装、ORM(在1.0版本中针对ORM仅做了最简单的实现,将在下一版本中完善)、拦截器、文件控制、XML解析、对象实例化及注射(反射)、基础的验证管理、Swing 事件的封装以及Swing 界面的封装等。上述的核心代码都已经完成并进行了简单的测试。目前正在利用 Grape 开发一个 Swing 的桌面应用程序,程序的主界面和最为基本功能已经实现。
在利用 Grape 进行开发时,解决了一些问题,也发现了一些更好的实现方法。这两天,将针对 Grape 的核心代码进行了重构,使代码更加清晰,结构也更加合理,当然在性能上也有所提升。另外将原有的组件属性的实现从代码中提取到 XML 配置文件中进行配置,当 Grape 实例化组件时注入对象中。这样做的好处是可以在不需修改代码更不需编译应用程序就可以轻易地修改组件的表现形式。更重要的是,不需要再针对每个组件都写一个 class ,最大化地实现代码重用。比如应用程序有新建和打开两个菜单项,按照传统的做法是生成两个 MenuItem 对象,并设置其 Text 等属性。利用 Grape ,只要在配置文件中简单地配置一下即可。
Continue Reading »
找个借口,也许是最近太忙,已经很久没有编写 grape 了。如果不是职业程序员就好了,如果能有更高点的薪水,更充足的业余时间就好了。
终于十一了,终于有自己的时间了,终于可以把 grape 的进度往前赶赶了,终于不再找借口了。
今天把 grape 的 class.xml 配置进行了一个小修改。对 local 标签新增了 method 属性,用来指定方法调用。为什么要加这个属性?先来看看默认的配置。
Continue Reading »
grape 分为两部分,grape 和 grapeApp。
grape,是专门针对 Swing 桌面应用的简易开发框架,其目的是为了快速开发和改善目前以智能UI为主的开发方式。
grapeApp,是基于 grape 的桌面应用。目前正在努力开发中,由于功能和技术复杂度比较高,开发周期可能比较长。至于功能,等发布的时候,会详细说明。
我保证它是免费的,但不保证你会认为它强大。
在《Swing程序的基本设计结构》一文中,大概描述了Grape应用程序的基本设计思想,今天我们来简单分析如何管理Swing应用程序的生命周期。
通过《Swing程序的基本设计结构》的分析得知,一个完整的Swing应用程序将由很多组件组合而成,这样做好处是显而易见的。组件是独立的,所以可以独立存在,如同对象一样可以被复用。组件是由领域对象、Action和View组成的。这样做的好处是每一层的任务更加明确,对象更加单纯。领域层封装了各业务的细节(关于领域对象请参照《程序设计不是这么简单》),Action负责指挥各领域对象完成业务操作,View只关心如何更好地与用户交互,对于与用户交互后所发生的一切一无所知。如此便有了应用程序结构的简单模型。
Continue Reading »
Swing是纯Java写的图形用户界面。JDK1.5 以前的Swing,耗资源、性能低下、不美观等诸多原因,无论 Sun 如何宣传,也很少有开发者去关注它。自从 JDK1.5 的出现,无论从性能还是外观 Swing 都发生了巨大的变化,人们眼中的丑小鸭渐渐地变成了白天鹅。
相对Web应用来说,我更喜欢开发桌面程序。以前也开发几个应用。不过每次都会有这种感觉 — 总是写一堆控制程序启动和加载各种资源的类,还有一组数据库管理类和一堆程序界面和 Widget 类。然后就是老套路,为每个界面对应一类,用来实现应用程序的业务逻辑。每次有较新颖的想法准备开始动手时,上面这一堆机械式地开发方式总是让我提不起精神。唉!程序设计不是如此简单。
Continue Reading »