• 322.00 KB
  • 38页

架构设计基本原则.ppt

  • 38页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'分层架构概要设计 架构设计基本原则这里,将描述一些在这个架构设计中的基本原则,其中很多都是经典的设计原则 逐层调用原则及单向调用原则现在约定将N层架构的各层依次编号为1、2、…、K、…、N-1、N,其中层的编号越大,则越处在上层。那么,我们设计的架构应该满足以下两个原则:第K(1            第一条为Access的连接字符串,第二条为Access数据库文件的路径,其中“~”表示网站根目录 第三步,新建一个工程。我们要新建一个工程AccessDAL,用来存放Access数据访问层的代码。      准备工作做完了,现在来实现具体的代码。 1.编写数据访问助手类因为很多数据访问操作流程很相似,所以,这里将一些可复用的代码抽取出来,编写成助手类,以此减少代码量,提高代码复用性。      这个助手类放在AccessDAL下,叫AccessDALHelper,主要负责Access数据库的访问。它包括三个方法:      GetConnectionString:从配置文件中读取配置项,组合成连接字符串。      ExecuteSQLNonQuery:执行指定SQL语句,不返回任何值,一般用于Insert,Delete,Update命令。      ExecuteSQLDataReader:执行SQL语句返回查询结果,一般用于Select命令。 2.实现具体的数据访问操作类因为前面已经定义了数据访问层接口,所以实现数据访问操作类就是很机械的工作了。这里主要包括三种类型的操作,一种是修改型,如Insert;一种是返回单个实体类型,如GetByID;还有一种是返回实体类集合型,如GetAll。 依赖注入机制及IoC的设计与实现这里设计的分层架构,层与层之间应该是松散耦合的。因为是单向单一调用,所以,这里的“松散耦合”实际是指上层类不能具体依赖于下层类,而应该依赖于下层提供的一个接口。这样,上层类不能直接实例化下层中的类,而只持有接口,至于接口所指变量最终究竟是哪一个类,则由依赖注入机制决定。 配置首先,需要在Web工程的Web.config文件的节点下添加如下两个项:                  这两个配置选项分别存储要应用的数据访问和也业务逻辑层的程序集名称。value目前是空,是因为目前还没有各个层次的具体实现。 实现缓存操作辅助类为实现缓存操作,我们将缓存操作封装成一个辅助类,放在Utility工程下 封装依赖注入代码因为很多依赖注入代码非常相似,为了减少重复性代码,我们将可复用的代码先封装在一个类中。(这个类放在Factory工程下) 实现工厂下面使用两个辅助类,实现数据访问层工厂和业务逻辑层工厂。 业务逻辑层的实现在实际应用中,业务逻辑层是至关重要的,他承载着整个系统最核心的部分,也是客户最关注的部分。这一部分的实现,通常需要技术专家和领域专家通力合作。 业务逻辑层主要承担了以下职责:      1.对不同数据访问层的封装。使得表示层可以不关心具体的数据访问层。      2.业务逻辑数据的填充与转换。如管理员口令的加密。      3.核心业务的实现。这里很多业务逻辑只有一行代码,即一个业务逻辑方法恰好对应一个数据访问方法,但是也有通过多个数据访问方法实现业务的。如AdminBLL中的ChangePassword方法就调用了AdminDAL的GetByID和Update两个方法。另外,虽然许多方法只调用一个数据访问方法,但是从命名看也能看出两者着眼点的不同。如AdminDAL中的GetByNameAndPassword,这个名字显然是从数据库的角度看问题——指按照指定的Name和Password两个字段的值取出相应信息,至于这样做的业务意义它不需要知道。而AdminBLL中,调用它的方法叫Login,这是从业务角度看问题——即这个方法是管理员登录 1.建立工程在这个架构中,业务逻辑层是可以替换的。及业务逻辑层不是直接耦合于表示层,而是通过依赖注入机制实现。所以,我们这里将这个业务逻辑层不直接命名为BLL,而是新建一个叫SimpleBLL的工程,放置我们这个业务逻辑层的相关代码。 2.配置依赖注入业务逻辑层要通过反射工厂加载相应的数据访问层,这样就需要在Web.config中配置需要使用的数据访问层。打开Web.config,找到appSettings节点下的“DAL”项,将其中的value赋予我们要使用的数据访问层工程名称,例如:要使用NBearDAL,则这一项应该这样写:       3.编写散列加密工具类因为在业务逻辑层的多处需要用到散列加密,所以在Utility工程下写一个辅助类Encryptor,完成这个工作 4.实现业务逻辑层有了上述准备工作和以前实现的组件,业务逻辑层的实现非常直观。这里仅以管理员为例,展示如何实现业务逻辑层。 表示层的实现表示层是一个系统的“门脸”,不论你的系统设计的多么优秀,代码多么漂亮,系统的可扩展性多么高,但是最终用户接触到的大多是表示层的东西。所以,表示层的优劣对于用户最终对系统的评价至关重要。一般来说,表示层的优劣有一下两个评价指标:1.美观。即外观设计漂亮,能给人美的感觉2.易用。即具有良好的用户体验,用户用起来舒服、顺手。 一般来说,表示层的职责有以下两点:1.接受用户的输入。2.向用户呈现信息。总体来说,就是与用户的交互。 1.设计界面为实现这个功能,我们首先要有一个Web页面。 2.表示逻辑页面搞定了,但是要想页面发挥作用,还要有表示逻辑才行。 '