软件的分层
目前典型的应用软件的结构:三层结构
表述层:提供与用户交互的界面。GUI(图形用户界面)和web页面是表述层的两个典型的例子。
业务逻辑层:实现各种业务逻辑。
数据库层:负责存放和管理应用的持久性业务数据。
区分物理层和逻辑层
软件的分层包含两种含义:一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能。
业务逻辑层和数据库层运行在同一台机器上,这台机器即是应用服务器,又是数据库服务器,因此整个系统物理上分为两层,而逻辑上分为三层结构。
软件层的特征
软件层必须符合以下特征:
1、 每个层由一组相关的类或组件(如EJB)构成,共同完成特定的功能。
2、 层与层之间存在自上而下的依赖关系,即上层组件会访问下层组建的API,而下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。(基本特征)
3、 每个层对上层公开API,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API不变,不会影响其它层的实现。(向上公开接口,封装实现细节)
软件分层的优点
恰当的为软件分层,将会提高软件的以下性能。
1、 伸缩性(指应用程序是否支持更多的用户)
2、 可维