9.2.2 信息系统的架构设计
下面根据架构设计原则和信息系统原理来建立一个信息系统的架构设计模型。将信息系统中比较关心的对象分层,可分为三层:用户界面层、业务层、数据访问层,再把各层中的一些公共部分提出来:权限管理、异常处理,这样得到信息系统包图如图9.2所示。
图9.2 信息系统包图
一、用户界面包
用户界面包如图9.3所示:
图9.3 用户界面包
用户界面层的职责是:
(1)与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。
(2)对于输入的数据进行数据校验,过滤非法数据。
(3)向业务处理对象发送处理请求。
包含类的类图如图9.4所示:
图9.4 用户界面包包含类的类图
二、业务处理包
业务处理包如图9.5所示。
业务处理层的职责是:
(1)实现各种业务处理逻辑或处理算法。
(2)验证请求者的权限。
(3)向数据访问对象发送数据持久化操作的请求。
(4)向用户界面层返回处理结果。
图9.5 业务处理包
包含类的类图如图9.6所示。
图9.6 业务处理包包含类的类图
这里使用了代理(Proxy)模式,用户界面对象只能通过业务代理对象来向业务对象发送请求。业务代理对象首先判断请求者的权限,然后转发合法请求者的请求。
三、数据访问包
数据访问包如图9.7所示。
图9.7 数据访问包
数据访问层的职责是:
(1)实现数据的持久化操作(本书假设数据的存储由关系数据库来完成)。
(2)实现事务处理。
包含类的类图如图9.8所示。
对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。这里的数据库连接类的创建用到了单件(Singleton)模式,保证一个类仅有一个实例,一个客户在同一时刻只能用一个数据库连接对象。
图9.8 数据访问包包含类的类图
四、权限管理包
权限管理包如图9.9所示。
图9.9 权限管理包
权限管理的主要职责是:
(1)验证请求者的请求权限。
(2)提供请求者的权限列表。
包含类的类图如图9.10所示。
图9.10 权限管理包包含类的类图
业务处理对象通过权限管理对象来验证权限。
五、异常处理包
异常处理包如图9.11所示。
图9.11 异常处理包
异常处理的职责:
(1)汇报运行时的详细异常信息。
(2)记录异常处理日志。
包含类的类图如图9.12所示。
因为异常处理类型比较多,如:系统异常、数据库异常、业务逻辑异常等,针对不同类型的异常处理方式也容易变,如,显示错误、记录文本日志、记录数据库日志等,所以这里使用了桥接(Bridge)模式来实现,使各部分的变化比较独立。
六、架构的类图
将包图展开,得到类图,即架构的类图(图9.13),表达了各个类之间的静态联系:
图9.12 异常处理包包含类的类图
图9.13 架构的类图
七、架构的动态图
架构的动态图(图9.14)表达了类和对象之间的动态协作关系。
图9.14 架构的动态图
流程:
(1)用户界面对象在接收了用户的输入请求后,向业务代理对象发送处理请求。
(2)业务代理对象接收到请求后,向权限管理对象发送验证权限请求。
(3)权限管理对象验证权限后将验证结果返回给业务代理对象。
(4)业务代理对象根据验证结果进行以下处理:对于不符合权限的请求则返回提示信息;对于符合权限的请求,则将请求转发给业务对象。
(5)业务对象进行业务处理。对于业务处理中的数据持久化操作,通过访问数据库访问对象进行操作,期间的任何异常都交给异常处理对象处理。最后返回处理结果信息给业务代理对象。
(6)业务代理对象将处理结果信息返回给用户界面。
至此,我们已经学习了架构设计原则,并建立了一个信息系统的架构设计模型。下面我们将学习在系统设计中更为细化的“类设计”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。