软件分层

软件的分层

目前典型的应用软件的结构:三层结构

表述层:提供与用户交互的界面。GUI(图形用户界面)和web页面是表述层的两个典型的例子。

业务逻辑层:实现各种业务逻辑。

数据库层:负责存放和管理应用的持久性业务数据。

区分物理层和逻辑层

软件的分层包含两种含义:一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能。

业务逻辑层和数据库层运行在同一台机器上,这台机器即是应用服务器,又是数据库服务器,因此整个系统物理上分为两层,而逻辑上分为三层结构。

软件层的特征

软件层必须符合以下特征:

1、  每个层由一组相关的类或组件(如EJB)构成,共同完成特定的功能。

2、  层与层之间存在自上而下的依赖关系,即上层组件会访问下层组建的API,而下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。(基本特征)

3、  每个层对上层公开API,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API不变,不会影响其它层的实现。(向上公开接口,封装实现细节)

软件分层的优点

恰当的为软件分层,将会提高软件的以下性能。

1、  伸缩性(指应用程序是否支持更多的用户)

2、  可维护性(指的是当发生需求变化,只需修改软件的某一部分,不会影响其它部分的代码。层数越多,可维护性也会不断提高)

3、  可扩展性(指的是在现有系统中增加新功能的难易程度)层数越少,增加新功能就越容易破坏现有的程序结构。层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架。

4、  可重用性(指的是程序代码没有冗余,同一个程序能满足各种需求)

5、  可管理性(管理系统的难易程度)

软件分层的缺点

软件分层越多,对软件设计人员的要求就越高。在设计阶段,必须花时间构思合理的体系结构。此外,软件层越多,调试会越困难。如果应用规模比较小,业务逻辑很简单,软件层数少反而会简化开发流程并提高开发效率。

Java应用的持久化层

业务逻辑层不仅负责业务逻辑,而且直接访问数据库,提供对业务数据的增、删、改、查操作。为了把数据访问细节和业务逻辑分开,可以把数据访问作为单独的持久化层。

“数据访问”是专业术语,指的是在应用程序代码中生成恰当的SQL语句,然后通过JDBC API访问数据库,对数据进行增、删、改、查。

         持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到以下目标:

1、  代码可重用性高,能够完成所有的数据库访问操作。

2、  如果需要的话,能够支持多种数据库平台。

3、  具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。

目前在持久化层领域,已经出现了许多优秀的ORM软件,有的是商业性的,有的是开发源代码的。Hibernate就是一种开发源代码的ORM软件。ORM软件具有中间件的特征。中间件是在应用程序和系统之间的连接管道。Hibernate可看成是连接Java应用和关系数据库的管道。中间件和普通应用程序代码的区别在于,前者具有很高的可重用性,对于各种应用领域都适用;后者和特定的业务功能相关,不同业务领域的应用程序代码显然不一样。中间件的另一特点是透明性,作为Hibernate的使用者,无需关心它是如何实现的,只需要知道如何访问它的接口就行了。

         透明与封装具有同样的含义,软件的透明性是通过封装实现细节来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值