系统架构中的纵向划分(一)
来源:互联网 发布:淘宝宝贝图片美工 编辑:程序博客网 时间:2024/05/22 05:15
系统架构中的纵向划分一般都称为系统分层。系统分层主要是为了系统能更好得适应复杂多变的软硬件环境。比如说一个常见的企业信息化系统,如果以前这个系统使用的SqlServer,现在因为种种原因需要使用oracle,那么你的系统对这样的变化能很好的适应吗?
让我们看看不同的系统架构对这样的变化的适应程度。
a)系统没有划分层次,在UI界面的事件中直接调用相关的数据库连接代码(比如在添加按钮的Click事件中连接数据库,并且传送Insert语句或者执行存储过程)。当前面的变化出现时,我们的程序人员,不得不在所有的代码中找到相关的数据库操作代码,并且改成符合Orcacle规范的操作。
b)系统专门设一个数据库访问层,在UI界面的事件中调用数据库访问层中的类来执行操作。当前面的变化出现时,我们的程序人员只需要修改数据库访问层的类的具体实现就可以了,至于UI界面部分的代码不需要改变。
c)系统专门设一个数据库访问层,这个层中设立一个通用数据库访问接口(IDataAccess),设立一个DataAccessFactory class,此class设一个方法:IDataAccess GetDataAccess(),这个类方法可以返回一个特定的IDataAccess实现,至于返回什么样的具体实现,可以设立一个配置文件,GetDataAccess方法可以根据配置文件的要求来返回一个适当的实例,当使用SqlServer时,我们一定是返回一个SqlServerAccess(一个IDataAccess的具体实现类),现在我们如果改用Oracle,那么我们仅仅需要新增一个OracleAccess类,并且改动一下配置文件,其余事情什么也不用做。
可以看出a)情况最差,因为它需要在全体代码中进行修改,这样范围的修改会牵扯到好多代码,因而极其容易出错。b)情况就好了很多,因为我们把代码的修改局限在了数据库访问层的几个类中,这样很好控制了Bug的出现。c)的情况那就非常好了,因为我们根本不需要修改任何已有代码,而仅仅是新添一些类,并且修改一个配置文件即可。
无疑c)的设计是最复杂的,但它的可扩展性是最好的,看来一个好的架构对于大型的,易变的,需要不断扩展的系统是极其重要的。
- 系统架构中的纵向划分(一)
- 系统架构中的纵向划分(二)
- 系统架构中的纵向划分(三)
- wince系统架构(一)
- 整数划分(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- petshop4.0 (一)系统架构设计
- 系统架构的设计学 (一)
- 系统架构师笔记(一)
- Android系统架构剖析(一)
- Android WiFi--系统架构(一)
- ASP.Net2 中取得Sql Server存储过程的返回值
- 全文检索概念
- windows bat
- 搜索引擎优化SEO工具集合[转]
- SmartClient Software factory中的Composite UI Application Block(Cab)技术了解(四):Command
- 系统架构中的纵向划分(一)
- Qt4 學習筆記
- 未来的一个月
- c#通过ICallbackEventHandler接口实现回调
- Rebocode入门:机器人赛事
- SmartClient Software factory中的Composite UI Application Block(Cab)技术了解(五):Event Broker
- 上下文关键字
- 转:海尔千日再造核心方案出炉 张瑞敏力推三位一体
- SmartClient Software factory中的Composite UI Application Block(Cab)技术了解(六):SmartPartInfo