最近在自己的项目中试图采用三层架构来开发这套系统。研究三层架构也有半年时间,正好可以拿来练练手。
--------------------------
OK。先上我的框架
在这里 BLL层用来放实际用到的业务逻辑,
DALFactory层用来放反射工厂,用来动态调用SQLServer层这样做的目的是可以很方便的使程序适应不同的数据库.
IDAL是放到是接口,对数据库操作需要用到的接口都放在这边,这个层次设计好之后,业务逻辑层的开发和数据访问层的开发遍可以同时进行,开发业务逻辑层便可以专心开发他的业务逻辑。而开发数据访问层的只需要实现相应的接口就好,总的来说。在需求分析阶段这块是非常重要的。以后就面向接口开发就好。
Model即实体类。把需要用到的实体都放在这边。
pages即表现层的页面文件。这个层次和BLL层有这比较密切的关系。它所需要实现的功能只需要通过BLL来做就OK了。
SQLServer数据访问层,这个层主要用来实现接口并且对数据库进行增删改查等操作。
Utility层主要放一些公共的类。比如SQLHelper或者OracleHelper或者分页类等一些公共类,以后在其他的程序中方便重用。。
这个是三层架构的基本框架,他的优点在于
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点在于:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点在于:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。