﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-只言片语-随笔分类-java</title><link>http://www.blogjava.net/aihua/category/12749.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 05:01:54 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 05:01:54 GMT</pubDate><ttl>60</ttl><item><title>改进</title><link>http://www.blogjava.net/aihua/archive/2006/07/04/56597.html</link><dc:creator>aihua</dc:creator><author>aihua</author><pubDate>Tue, 04 Jul 2006 14:45:00 GMT</pubDate><guid>http://www.blogjava.net/aihua/archive/2006/07/04/56597.html</guid><wfw:comment>http://www.blogjava.net/aihua/comments/56597.html</wfw:comment><comments>http://www.blogjava.net/aihua/archive/2006/07/04/56597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aihua/comments/commentRss/56597.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aihua/services/trackbacks/56597.html</trackback:ping><description><![CDATA[    项目基本上采用如下交互模式.<br />    流程如下.<br /><ol><li>一个页面对应一个用类</li><li>一个页面对应一个Struts Action.</li><li>页面上一个动作(提交按钮)对应Action一个方法(或者对应if语句)</li><li>一个Struts Action对应一个BO类</li><li>一个Struts Action 方法(页面一个动作)对应BO一个方法</li><li>一个BO对应1到多个DAO.</li></ol><br />  其中业务对象BO,<br /><ol><li>都是按照无状态设计的,类似函数大集合.</li><ol><li>函数之间不考虑复用,函数之间功能独立,代码重复率高.<br /></li></ol><li>业务对象都是都是根据用例来划分的(1 vs 1).</li><ol><li>业务对象之间不考虑关系,全部都是函数载体.</li></ol><li>DAO主要服务于业务对象.基本上也是1 vs 1</li><ol><li>只能服用CRUD情况.复杂的sql文如果很相似可以合并.</li><li>由于设置上是为业务对象服务,业务对象之间设置沟通很少,所以DAO实现也多重复</li></ol></ol>  但是开发效率很高.从外到里,全程一人设计.单独看功能完整,全局看,雷同的太多了.<br /><br />  首先提炼业务对象.从全局角度考虑,划出有限个业务对象.利用对象关系勾勒出完整的业务逻辑.<br />  其中每个业务对象与PO紧密合作,PO依赖与DAO,实现对象的基本操作(CRUD).<br />  以上实现业务对象层,主要用来描述业务对象之间的关系,已经持久化功能..<br /><br />  再设计出查询层,支持复杂查询,获取各种查询结果.<br /><br />  门户层对客户端(Struts Action)提供业务接口,支持如下:<br /><ol><li>对业务对象层操作</li><li>对查询层操作</li><li>对于复杂业务逻辑,结合查询层和业务层来实现.</li></ol>  <br /> 附上代码。  <a href="http://javaeye.gbaopan.com/files/794861a6b7e94369a2e2be6110908d84.gbp">项目代码</a><br />   主要改进如下类<br /><ol><li>CompinfoServiceImp</li><ol><li>直接调用Compinfo，不显示调用DAO</li></ol><li>Compinfo</li><ol><li>内部隐藏调用DAO</li></ol></ol><br /><br /><img src ="http://www.blogjava.net/aihua/aggbug/56597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aihua/" target="_blank">aihua</a> 2006-07-04 22:45 <a href="http://www.blogjava.net/aihua/archive/2006/07/04/56597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>现在我们的开发架构</title><link>http://www.blogjava.net/aihua/archive/2006/07/04/56593.html</link><dc:creator>aihua</dc:creator><author>aihua</author><pubDate>Tue, 04 Jul 2006 13:33:00 GMT</pubDate><guid>http://www.blogjava.net/aihua/archive/2006/07/04/56593.html</guid><wfw:comment>http://www.blogjava.net/aihua/comments/56593.html</wfw:comment><comments>http://www.blogjava.net/aihua/archive/2006/07/04/56593.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/aihua/comments/commentRss/56593.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aihua/services/trackbacks/56593.html</trackback:ping><description><![CDATA[    首先说说我们现在采用的开发框架.然后慢慢的进行改造.<br />    首先是标准的WEB应用程序.包括WEB层,业务层(BO层)和持久化层(DAO/PO).<br />    1.WEB层,采用Struts.<br />        1.1 JSP页面采用少量的Struts标签,其他功能通过自定义标签完成.<br />       1.2 页面操作分为 添加(修改)/列表 两部分.基本上通过CSS来展现.其中列表部分采用Displaytag<br />       1.3 按需要采用Ajax<br /><br />    2.业务层采用Spring.<br />       2.1 通过DelegatingActionProxy绑定Struts<br />       2.2 BO只有一个空父类.提供Log4j的实例.<br />       2.3 BO依赖与BaseDAO及具体业务DAO.<br />           2.3.1  BaseDAO完成基本的增删改查,<br />           2.3.2  具体业务DAO完成关于本表的复杂的查询<br />           2.3.3  多表关联的查询,则单独封装在DAO中<br />       2.4 事务控制统一由Spring AOP配置完成.<br /><br />    3.持久层采用Hibernate<br />       3.1 BaseDAO继承HibernateDaoSupport<br />       3.2 普通HSQL文查询.<br /><br /><br />    以上是当前项目的状况,以后会逐一对其改进.<br /><img src ="http://www.blogjava.net/aihua/aggbug/56593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aihua/" target="_blank">aihua</a> 2006-07-04 21:33 <a href="http://www.blogjava.net/aihua/archive/2006/07/04/56593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>