huangyiiiiii

此blog不再更新,大家都去我的新家吧http://codeplayer.blogbus.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
小弟初学,并未做过实际的项目,只是列举各大赫赫有名的例子使用的模式略加分析,抛砖引玉而已,希望大家多多介绍好的设计方案。
 
1:petshop

    采用工厂模式。用一堆接口彻底把数据层的实现封装起来,工厂类通过读取读配置文件的设置产生具体实现。
    接口应该在需求分析阶段讨论出来,然后大家带着这一堆接口便可以各做各的事了,做数据库的专门做数据库,只要实现那些接口就行。表示层和业务层的只需要调用接口就可以了,通过工厂类创建具体实现,根本不用考虑用什么样的数据源。
    如果想换个数据库,甚至换成xml存储数据,只需要添加相应的类来实现这些接口,然后在配置文件中稍加改动即可,方便。
    各层之间通过各种设计好的专门负责存储数据的model类传递数据。
    简单明了。

    这种方法通过接口把实现和表示彻底分离,两边都完全依赖接口,接口可谓责任重大,如果中途接口需要改动,影响会比较大,不过只要需求做好了 ,应该不会出现这种问题。


2:duwamish



3《asp.net高级应用:提出问题,设计方案,解决问题》(书名好象是这样的)讲的一个例子: 
           感觉这个例子设计的数据层灵活到了极点,它把数据分成不同的实体,每个实体都有插入,删除,创建,更新(至少有其中之一),所有操作通过存储过程完成。实体与存储过程之间的这种关系以及存储过程的参数信息都放到配置文件中,启动时加载到内存,当然有一系列的类来存储这些信息。
           然后只用一个类便可以执行所有存储过程!!
           这个类是个基类,可以派生不同子类完成不同数据库的存取工作。
    这个类接受实体类的基类(所有实体类从中派生)和操作(Insert update create delete)做为参数,然后自动去找相应的存储过程和参数信息,然后利用反射从实体类中去找参数的value(当然参数对应的类中的field名也是事先存好了的),然后执行存储过程,结果同样保存在这个实体类中!
   
          
posted on 2005-04-13 13:06  huangyi  阅读(1750)  评论(0)    收藏  举报