??xml version="1.0" encoding="utf-8" standalone="yes"?>a级大胆欧美人体大胆666,日韩一二三区不卡在线视频,中文在线资源http://www.aygfsteel.com/wfeng007/category/6240.htmlzh-cnTue, 27 Feb 2007 10:29:45 GMTTue, 27 Feb 2007 10:29:45 GMT60表模块模式(Table ModuleQ?/title><link>http://www.aygfsteel.com/wfeng007/archive/2006/03/13/35021.html</link><dc:creator>wfeng007</dc:creator><author>wfeng007</author><pubDate>Mon, 13 Mar 2006 06:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/wfeng007/archive/2006/03/13/35021.html</guid><wfw:comment>http://www.aygfsteel.com/wfeng007/comments/35021.html</wfw:comment><comments>http://www.aygfsteel.com/wfeng007/archive/2006/03/13/35021.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wfeng007/comments/commentRss/35021.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wfeng007/services/trackbacks/35021.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span lang="EN-US"><span style=""></span></span><span style="font-family: 宋体;">    (大量参考PoEAA...-_-...)</span></p><p class="MsoNormal"><span style="font-family: 宋体;"><br></span></p><p class="MsoNormal"><span style="font-family: 宋体;">    最q网上看到这L帖子</span><span lang="EN-US"><<</span><span style="font-family: 宋体;">谁能告诉?/span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">有何优秀之处</span><span lang="EN-US">>> </span><span style="font-family: 宋体;">作者给Z?/span><span lang="EN-US">hibernate</span><span style="font-family: 宋体;">在实?/span><span lang="EN-US">orm</span><span style="font-family: 宋体;">的诸多不满和怀疑。而且很多开发h员都有着q样疑问Q“怎么q个行东东Q我用v来就是不手呢?</span><span lang="EN-US">?/span><span style="font-family: 宋体;">Q“或许这个东东只是用来吹牛的</span><span lang="EN-US">?/span><span style="font-family: 宋体;">”。然而,q或许很可能是因为,你习惯的架构模式开发策略ƈ不适合使用</span><span lang="EN-US">orm</span><span style="font-family: 宋体;">q种持久化模式。用了反而是加大复杂度降低性能和效率。比如,用惯?/span><span lang="EN-US">resultset</span><span style="font-family: 宋体;">Q喜Ƣ把</span><span lang="EN-US">resultset</span><span style="font-family: 宋体;">攑֜表示层作为展C的数据l构的h。这L开发h员因Z惯了二维表ؓ核心q行开发,对于</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">q样?/span><span lang="EN-US">orm</span><span style="font-family: 宋体;">工具Ҏ没办法了解其优势了。但是这q不是说q种以二l表的架构模式就比较差了Q只是不同的模式有不同的优缺点就看所在的应用是否适合使用了。或怽׃直在使用q样的模式在开发应用,自己q没有意识到Q甚至一直以L方式可以适应M应用Q?/span><span lang="EN-US">:-</span><span style="font-family: 宋体;">Q。反而被其他架构模式中才会用到的框架搞的晕头转向甚至被误对{事实上Q像前面提到的以二维表ؓ核心的架构被UC?/span><span lang="EN-US">?/span><span style="font-family: 宋体;">表模?/span><span lang="EN-US">?/span><span style="font-family: 宋体;">架构</span><span lang="EN-US">(</span><span style="font-family: 宋体;">设计</span><span lang="EN-US">)</span><span style="font-family: 宋体;">模式?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">何ؓ“表模块?/span><span lang="EN-US">(table module)</span><span style="font-family: 宋体;">Q“处理某一个数据库表、视图或虚拟表中所有行为的业务逻辑l成的一个实例”。最初,我就是从马丁同学?/span><span lang="EN-US">POEAA</span><span style="font-family: 宋体;">中得到的q个定义。在书中他被定义?/span><span lang="EN-US">DomainLogic </span><span style="font-family: 宋体;">层次或者该层次的一部分Q?/span><span lang="EN-US">DomainLogic</span><span style="font-family: 宋体;">也就是其他架构模型中?/span><span lang="EN-US">BizLogic</span><span style="font-family: 宋体;">层。与该模式相对应个还有完成相似功能的</span><span lang="EN-US">DomainModel</span><span style="font-family: 宋体;">以及</span><span lang="EN-US">TransactionScript</span><span style="font-family: 宋体;">模式。该层次的职责是专门处理业务逻辑?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">单的Ԍ所谓“表模块”就是以一个类对应数据库中一个表Q视图)的数据来l织业务逻辑。从设计层次表妙面上看这U结构很像经?/span><span lang="EN-US">OO</span><span style="font-family: 宋体;">模型Q同h以不同对象对应不同逻辑。但是,它与领域建模不同之处在于Q它的对象ƈ不表CZ个问题领域对象在软gpȝ中的映射。而是表示对一l数据的处理逻辑Q而通常q组数据的结构是重数据库表或试图上的二维数据l构。当然也可以来自其他集成部分Q比如返回两位数据结构的</span><span lang="EN-US">webservice</span><span style="font-family: 宋体;">?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">q里l出个比较Ş象的例子Q?/span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span lang="EN-US"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:223.5pt; height:95.25pt'> <v:imagedata src="file:///C:\DOCUME~1\wfeng007\LOCALS~1\Temp\msohtml1\01\clip_image001.emz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="http://www.aygfsteel.com/images/blogjava_net/wfeng007/pattern/oo.jpg"><br><!--[endif]--></span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">Q上图)感觉像比较标准的</span><span lang="EN-US">OO</span><span style="font-family: 宋体;">吧,好象一?/span><span lang="EN-US">Contract</span><span style="font-family: 宋体;">的对象表C合同,?/span><span lang="EN-US">Product</span><span style="font-family: 宋体;">表示产品Q还有他们之间的兌关系。但是其实现实给出几个方法的时候就看出区别了?/span><span lang="EN-US">Product</span><span style="font-family: 宋体;">内部的数据其实就是一个两位结构的</span><span lang="EN-US">rowset</span><span style="font-family: 宋体;">。而不像真正的领域模型分析出来的表CZ?/span><span lang="EN-US">Product</span><span style="font-family: 宋体;">的数据,</span><span lang="EN-US">Contract</span><span style="font-family: 宋体;">也是如此?/span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span lang="EN-US"><!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:338.25pt;height:150.75pt'> <v:imagedata src="file:///C:\DOCUME~1\wfeng007\LOCALS~1\Temp\msohtml1\01\clip_image003.emz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="http://www.aygfsteel.com/images/blogjava_net/wfeng007/pattern/tableModule.jpg"><br><!--[endif]--></span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">你会发现</span><span lang="EN-US">tableModule</span><span style="font-family: 宋体;">的类中一个对象其实对应一个表的数据,其拥有的操作也有很多是多数据记录的。多数据记录的操作在真正的领域中往往应该攑֜cM</span><span lang="EN-US">Manager</span><span style="font-family: 宋体;">q样的实体中Q而不是业务实体本w?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">使用q种模式实现的业务逻辑层不像领域模型模式可以适应搞复杂度的逻辑。但是由于它更亲q于数据持久的二l表Q没有像领域模型那样需要复杂的</span><span lang="EN-US">ORM</span><span style="font-family: 宋体;">支持。书对于数据驱动的应用或模块非常适合?/span><span lang="EN-US">POEAA</span><span style="font-family: 宋体;">中也已经l出了这U?/span><span lang="EN-US">bizLogic</span><span style="font-family: 宋体;">最有效的持久层实现Q就?/span><span lang="EN-US">table getway</span><span style="font-family: 宋体;">Q当然也可以使用其他的方式比如“查询工厂”?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">事实上,最多用这U模式的情况是当后台数据源大部分都是一U两l甚臛_l数据结构的时候进行。比如一个极端的例子Q几乎没有业务)Q一个应用的复杂查询模块Q这U模块就是一个查询模型加上一l对数据q行排列l计qo?/span><span lang="EN-US">TableModule</span><span style="font-family: 宋体;">?/span></p> <div align="center"><span lang="EN-US"><span style="">       <img src="http://www.aygfsteel.com/images/blogjava_net/wfeng007/pattern/tableModule_Meta.JPG"> </span></span></div><p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:291.75pt;height:194.25pt'> <v:imagedata src="file:///C:\DOCUME~1\wfeng007\LOCALS~1\Temp\msohtml1\01\clip_image005.emz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]--></span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><b style=""><span style="font-family: 宋体;">表模块还h很多特点</span></b><span style="font-family: 宋体;">Q处理的二维数据表将成ؓ代码的核心部分。所以,是否使用</span><span lang="EN-US">tableModule</span><span style="font-family: 宋体;">q会取决于整个应用的其他部分是否对这U二l表提供强大的支持。(如上图)</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><b style=""><span style="font-family: 宋体;">优点Q?/span></b><span style="font-family: 宋体;">持久层架构简单,在复杂度大的以数据ؓ核心的应用中开发效率极高。而且表模块能够识别的</span><span lang="EN-US">table</span><span style="font-family: 宋体;">多Q能够处?/span><span lang="EN-US">table</span><span style="font-family: 宋体;">的组建工兯强,q种模型的能力越强?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><b style=""><span style="font-family: 宋体;">~点Q?/span></b><span style="font-family: 宋体;">不能适应复杂的应用逻辑Q或者与表结构差别较大的应用逻辑。由于没有对内部的两位数据表Q?/span><span lang="EN-US">table</span><span style="font-family: 宋体;">Q进行有效标识的方式Q比如,无法快速简单的定使用</span><span lang="EN-US">table</span><span style="font-family: 宋体;">是否是需要的数据内容Q,对于大量l颗_的逻辑会增加其复杂度?/span></p> <p class="MsoNormal"><span lang="EN-US"><span style="">       </span></span><span style="font-family: 宋体;">其实</span><span lang="EN-US">java</span><span style="font-family: 宋体;">中的</span><span lang="EN-US"> rowset/jdbc resultset</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">.net</span><span style="font-family: 宋体;">中的</span><span lang="EN-US"> dateSet/dataTable</span><span style="font-family: 宋体;">都属于表模块操作的二l表。但是,׃</span><span lang="EN-US">.net</span><span style="font-family: 宋体;">?/span><span lang="EN-US">GUI</span><span style="font-family: 宋体;">层面以及持久化层面对他自q</span><span lang="EN-US">?/span><span style="font-family: 宋体;">二维?/span><span lang="EN-US">?/span><span style="font-family: 宋体;">的强大支持?/span><span lang="EN-US"> TableModule</span><span style="font-family: 宋体;">几乎成ؓ</span><span lang="EN-US">MS.Net</span><span style="font-family: 宋体;">上的首选模式。这也就可以解释了,许多</span><span lang="EN-US">.net</span><span style="font-family: 宋体;">开发h员一直抱怨,看到</span><span lang="EN-US">dataset/dataTable</span><span style="font-family: 宋体;">泛滥Q甚臛_</span><span lang="EN-US">WebService</span><span style="font-family: 宋体;">中也是这栗?/span><span lang="EN-US">java</span><span style="font-family: 宋体;">中却有所不同Q虽然有持久化用到的</span><span lang="EN-US">jdbc/resultSet</span><span style="font-family: 宋体;">的支持(事实?/span><span lang="EN-US">jdbc/ado </span><span style="font-family: 宋体;">l出的接口都只直接适合</span><span lang="EN-US">TableModule</span><span style="font-family: 宋体;">。)Q然而其他方面就得可怜了。所以,使用</span><span lang="EN-US">java</span><span style="font-family: 宋体;">q是以其他的</span><span lang="EN-US">bizLogic</span><span style="font-family: 宋体;">架构模式为好。除非你的逻辑真的很简单,单到?/span><span lang="EN-US">resultSet</span><span style="font-family: 宋体;">攑֜</span><span lang="EN-US">jsp</span><span style="font-family: 宋体;">中都不会造成逻辑混ؕ。又或者你能够自己提供一套完整的</span><span lang="EN-US"> rowset</span><span style="font-family: 宋体;">l徏框架?/span></p> <img src ="http://www.aygfsteel.com/wfeng007/aggbug/35021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wfeng007/" target="_blank">wfeng007</a> 2006-03-13 14:08 <a href="http://www.aygfsteel.com/wfeng007/archive/2006/03/13/35021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>锁模?/title><link>http://www.aygfsteel.com/wfeng007/archive/2006/01/10/27411.html</link><dc:creator>wfeng007</dc:creator><author>wfeng007</author><pubDate>Tue, 10 Jan 2006 08:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/wfeng007/archive/2006/01/10/27411.html</guid><wfw:comment>http://www.aygfsteel.com/wfeng007/comments/27411.html</wfw:comment><comments>http://www.aygfsteel.com/wfeng007/archive/2006/01/10/27411.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wfeng007/comments/commentRss/27411.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wfeng007/services/trackbacks/27411.html</trackback:ping><description><![CDATA[     摘要: 在事务系l中很重要的一个概念就是“锁”。在事务pȝ中“事务”概念保证了数据讉K的原子性,卛_事务q程中一l数据访问的一致性,而“锁”的概念保证了数据访问的隔离性与排他性,卛_ƈ发事务进E之间的同步讉K的独立性?nbsp; <a href='http://www.aygfsteel.com/wfeng007/archive/2006/01/10/27411.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wfeng007/aggbug/27411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wfeng007/" target="_blank">wfeng007</a> 2006-01-10 16:13 <a href="http://www.aygfsteel.com/wfeng007/archive/2006/01/10/27411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式定义归纳http://www.aygfsteel.com/wfeng007/archive/2005/12/22/25036.htmlwfeng007wfeng007Thu, 22 Dec 2005 02:59:00 GMThttp://www.aygfsteel.com/wfeng007/archive/2005/12/22/25036.htmlhttp://www.aygfsteel.com/wfeng007/comments/25036.htmlhttp://www.aygfsteel.com/wfeng007/archive/2005/12/22/25036.html#Feedback3http://www.aygfsteel.com/wfeng007/comments/commentRss/25036.htmlhttp://www.aygfsteel.com/wfeng007/services/trackbacks/25036.html阅读全文

wfeng007 2005-12-22 10:59 发表评论
]]>
վ֩ģ壺 | | Զ| ػ| | | ɽ| ƽ| Ϫ| ݶ| ַ| | | | | | | | | | | | ƽ| ɽ| Թ| | | Ͷ| | | | пǰ| | | | Ҵ| | | ɾ| ض| ̨|