zoukankan      html  css  js  c++  java
  • 接触CSLA框架的感觉

      也不知道整天忙什么,一直想学习这个框架(CSLA),但还是没有把进度提上来,零星的学习了一些,就学到多少写多少了,呵呵。今天想把从框架中学习到的一些思想来写一下,希望对大家有所帮助,当然只是我的初步见解,还望与大家多多交流学习。

      首先对于框架内部自己感觉很重要的一个就是对象的状态管理,IsNew,IsDelete,IsDirty等一些状态,它们可以跟踪对象,在一些时候可以起到很好的帮助,当然它们也可以简化一下应用到我们的应用程序中来对对象进行维持状态,来控件当前页面或控件的状态以及提交过程中根据对象状态来控制是增加操作还是更新操作,在这里我感觉很有帮助,把程序代码更简化和透明化,也更好的把状态封装在对象中。

      再就是对象的关系,我指的是父对象与子对象的关联,在CSLA中,子对象是不可以独自操作的(除非是可转换对象),它必须依赖于父对象的创建、更新等操作,虽然在现实开发中(非CSLA)可能没有这种很紧的依赖关系,但这种父子类关系有时候能更好的解决一些问题,比如在页面中整个页面可以看作是一个父类对象,在父类中有关系的一些子类对象,也可能是子类对象集,我们操作关联子类时可以把它们直接暂存在父类中,至于用什么样的方式来存储它们(session/viewstate等)可以根据情况来选择,配合对象的状态来对子类进行增删改查,最后在对父对象,也就是对页面信息进行提交时把封装有子对象/集的父对象信息传递到处理数据的方法中,显然这时候对象的状态管理显得更为重要,它们决定了父对象以及子对象是要进行增加还是修改或删除,当然这种批量处理最好放在一个事务中来达到数据准备性与一致性。当然在CSLA框架中对于事务处理更为方便,给方法添加一个属性即可(太**了)。

      一个好的思想,还是对于父子对象的操作,这里说的是查询时,在把父对象查询出来时也可以把子对象/集一块查询出来,在框架的例子中它是通过存储来返回两个DateReader,通过数据集的NextResult()方法来进行子对象的加载过程,当然,子对象会负责对它自身数据的填充,它可以接收这个数据流,我想这样做效率不会很差,反正自己感觉这种实现非常巧妙(没见过世面,哈哈)。当然对于数据量非常大的还是要小心的!!!

      在学习过程中,对于业务对象的验证过程感觉很爽,应用框架做了一个小win程序,对于字段的有效性的验证感觉非常方便,不用把太多代码写在页面底下,在业务中应用统一的封装形式来进行字段的有效性管理,还对失败业务对象进行跟踪,特别是在里面它通过委托来进行验证方法声明的统一性,我想这都是可以学习和借鉴的富贵知识。

      起初最吸引我的功能是N层的撤消功能,不会自己编写太多代码,通过继承关系把所有的操作封装在父类中,所有的继承过的业务对象都具有了此功能!!太强大了。

      一些专业性的语言不太会表述,这只是自己从中学习到一点,希望可能和大家一块学习,可以加我QQ:496195435。声明下我是初学!更多的是????哈哈

  • 相关阅读:
    KVC的取值和赋值
    OC中属性的内存管理
    mysql的通信协议
    Proactor模式&Reactor模式详解
    Linux异步IO学习
    Redis 分布式锁的实现原理
    redis过期键
    智能指针
    std::unique_lock与std::lock_guard
    手撕代码
  • 原文地址:https://www.cnblogs.com/quluqi/p/1644355.html
Copyright © 2011-2022 走看看