原则,正是上面提到针对接口编程,而不是针对实现编程,两者在本质上是统的。综上所述,可以看出,本课题设计的分层架构,应该是这样种架构层架构的各层依次编号为„„,其中层的编号越大,则越处在上层。架构中仅存在种依赖,即第层接口依赖第层,其中。封装变化原则封装变化的原则定义为找出应用中可能需要变化之处,把它们出来,不要和那些不需要变化的代码混杂在起。开放关闭原则开发关闭原则定义为对扩展开放,对修改关闭。具体到层架构中,可以描述为当层有了个新的具体实现时,它应该可以在不修改其他层的情况下,与此新实现无缝连接,顺利交互。单归属原则在这个架构中,任何个操作类都应该有单的职责,属于单独的层,而不能同时担负两种职责或属于多个层次实体类及辅助类可以被多个层使用,但它们不属于任何个层,而是存在。层次划分目前,典型的分层架构是三层架构,即自底向上依次是数据访问层业务逻辑层和表示层。这种经典架构经历了时间的考验和实践的多次检验,被认为是合理有效的分层设计,所以,在本文中,将沿袭这种经典架构,使用数据访问层业务逻辑层和表示层的三层架构体系。职责划分目前,在典型的三层架构中,对层次各自的职责划分并没有个统的规范,综合现有的成功实践和平台的特殊性,在本文中将三层架构的职责划分如下数据访问层负责与数据源的交互,即数据的插入删除修改以及从数据库中读出数据等操作。对数据的正确性和有效性不负责,对数据的用途不了解,不负担任何业务逻辑。业务逻辑层负责系统领域业务的处理,负责逻辑性数据的生成处理及转换。对流入的逻辑性数据的正确性及有效性负责,对流出的逻辑性数据及用户性数据不负责,对数据的呈现样式不负责。表示层负责接收用户的输入将输出呈现给用户以及访问安全性验证。对流入的数据的正确性和有效性负责,对呈现样式负责,对流出的数据正确性不负责,但负责在数据不正确时给出相应的异常信息。模块划分及交互设计综合以上分析,可在宏观上将整个系统分为下几个模块实体类模块组实体类的集合,负责整个系统中数据的封装及传递。数据访问层接口族组接口的集合,表示数据访问层的接口。业务逻辑层接口族组接口的集合,表示业务逻辑层的接口。数据访问层模块组类的集合,完成数据访问层的具体功能,实现数据访问层接口族。业务逻辑层模块组类的集合,完成业务逻辑层的具体功能,实现业务逻辑层接口族。表示层模块程序及可视元素的集合,负责完成表示层的具体功能。容器模块负责依赖注入的实现。辅助类模块完成全局辅助性功能。各模块间交互关系如下图总体架构图基于平台的分层架构实战四实体类的设计与实现实体类是现实实体在计算机中的表示。它贯穿于整个架构,负担着在各层次及模块间传递数据的职责。般来说,实体类可以分为贫血实体类和充血实体类,前者仅仅保存实体的属性,而后者还包含些实体间的关系与逻辑。我们在这个中用的实体类将是贫血实体类。大多情况下,实体类和数据库中的表这里指实体表,不包括表示多对多对应的关系表是对应的,但这并不是个限制,在复杂的数据库设计中,有可能出现个实体类对应多个表,或者交叉对应的情况。在本文的中,实体类和表是对应的,并且实体类中的属性和表中的字段也是对应的。在看实体类的代码前,先看下系统的工程结构。图工程结构图如上图所示,在初始阶段,整个系统包括个工程,它们的职责是这样的表示层存放实体类存放和依赖注入及相关的类存放业务逻辑层接口族存放数据访问层接口族存放各种工具类及辅助类这只是个初期架构,主要是将整个系统搭个框架,在后续开发中,将会有其他工程被陆陆续续添加进来。我们的实体类将放在工程下,这里包括三个文件,分别是管理员实体类留言实体类和评论实体类。具体代码如下实体类管理员的引用,这个文件在文件包的目录下。完成后,在这个工程下新建个文件,名为,这个文件就是设计文件,根据对实体和数据库的设计,编写完整代码如下设计完后,将这个工程编译备用。创建专用实体类及配置文件在文件包的目录下,有个程序,打开它,点击按钮,选择刚才编译生成的文件,并在文本框里输入相应的命名空间,这里我们应输入。然后点击按钮,这时会在底下的文本框里生成专用实体类代码。在解决方案下新建个工程,用于存放所有数据访问层的实现代码。在这个工程下新建,将刚才自动生成的代码覆盖掉这个文件的代码,专用实体类就做好了。另外,需要给工程添加到和的引用,这两个文件都在目录下。点击按钮,这时会生成配置代码。在工程下新建文件,将生成的代码复制到这个文件里保存。最后还要修改下文件。增加如下配置代码然后再在节点下增加如下项其中是连接字符串,根据个人不同情况进行修改。这里使用的是。因为数据库在上篇中已经创建好了,这里就不需要创建数据库了。编写转换器这里出现了个矛盾业务逻辑层和表示层需要使用通用的实体类,如,而需要使用专用实体类。怎么解决这个矛盾呢我这里使用的方法是个我称之为转换器的方法。即为没个实体写个专门的转换器,实现两种实体类的转换。这里以管理员实体为例,这个转换器写在工程下的文件中。具体代码如下实体类转换器管理员由普通管理员实体类转化为专用管理员实体类普通实体类专用实体类由专用管理员实体类转化为普通管理员实体类专用实体类普通实体类实现数据访问层做完上述工作,我们就可以来实现数据访问层了。借助于框架的支持,我们可以非常方便的使用方式访问数据库。关于的细节,这里不再赘述,以管理员为例,具体代码如下插入管理员管理员实体类是否成功删除管理员欲删除的管理员的是否成功更新管理员信息管理员实体类是否成功,基于平台的分层架构实战综述通过浏览博客园的文章发现,很多朋友对分层架构特别感兴趣,刚好我刚做完的毕业设计就是专门研究平台上分层架构的题目叫基于平台的分层架构与设计模式应用研究。通过做这篇论文,我对分层架构有了定的了解,所以,就萌发了想写个文章系列,详述下分层架构。然而,论文的理论性太强,不适合在网上发布,尤其不适合初学者理解,所以,我想在这个文章系列中,少讲理论,而是通过做个完整的案例来讨论分层架构的基本方法,这样会直观很多。希望在这个文章系列的写作过程中,能和朋友们起学习,起进步。为了让朋友们把主要精力放在理解分层架构而不是案例本身,我准备选择个相对简单的留言本系统作为,这个系统的名字就叫做。初步计划将这个文章系列分为以下几篇综述系统需求分析及数据库设计架构概要设计实体类的实现接口的设计与实现依赖注入及的设计与实现数据访问层的第种实现动态生成语言数据访问层的第二种实现存储过程数据访问层的第三种实现基于框架的实现业务逻辑层的实现表示层的实现当然,以上只是初步计划,在写文章的过程中可能会根据具体情况适当调整,但是内容大体就是这些。这个文章系列不会对所用到的技术进行详细讲解,具体请参考相关文献,阅读文章前最好能对以下技术有个了解语言设计模式关系数据库基础知识软件架构基本原则与软件工程基础知识基于框架的技术,框架特别是客户端编程标准化布局另外,本文章系列是基于框架平台进行讨论,平台的新特性如等不会讨论,使用,数据库会用到和。基于平台的分层架构实战二需求分析与数据库设计在实际的项目中,需求分析和数据库的设计是很重要的个环节,这个环节会直接影响项目的开发过程和质量。实际中,这个环节不但需要系统分析师软件工程师等计算机方面的专家,还需要相关领域的领域专家参与才能完成。但是,在这个文章系列中,所要使用的仅仅是个例子,而且其业务极为简单,因此,这里并不是真正的需求分析和数据库设计,而是将的需求和数据库罗列至此,使朋友们对有个大体的了解,方便后续文章中开发过程的理解。需求分析这个项目是个留言本,其业务极为简单,现将其描述如下。任何访问者可以进行留言,留言完成后,不会立即显示正文,而是要经过管理员验证后才可显示。任何访问者可以对留言发表评论,未通过验证的留言不可以评论。管理员可以对留言进行回复这个回复不同于评论,是直接显示在正文下面,而且是个留言只能有个回复,并可对留言与评论实行删除,以及对留言进行通过验证操作。管理员分为超级管理员和普通管理员。超级管理员只有个,负责对普通管理员实行添加删除操作。普通管理员可偶多个,负责对留言的管理,并可以修改自己的登录密码。这个项目的用例图如下图的用例图数据库设计设计数据表之前,首先进行实体和关系的识别与确定。通过需求分析,可以观察得出,本项目的实体有管理员不包括超级管理员,留言,评论。本项目的关系有留言与评论间的对多关系。进步,数据库各表的设计如下管理员表管理员主键,自增登录名登录密码使用加密留言表留言主键,自增留言者用户名留言者留言内容发表留言时间回复是否通过验证评论表评论主键,自增评论内容发表评论时间所属留言的外键基于平台的分层架构实战三架构概要设计本文主要是对将要实现的架构进行个总体的描述,使朋友们对这个架构有个宏观上的认识。这篇文章理论性的东西会偏多点,从下篇开始,将进行实际项目的开发。这篇文章的许多内容摘自我的毕业论文。架构基本原则这里,将描述些在这个架构设计中的基本原则,其中很多都是经典的设计原则,不过针对分层架构的特点,用我自己的语言进行了描述。其中也有我自己提出的原则。逐层调用原则及单向调用原则现在约定将层架构的各层依次编号为„„,其中层的编号越大,则越处在上层。那么,我们设计的架构应该满足以下两个原则第层只准依赖第层,而不可依赖其他底层。如果层依赖层,则的编号定大于。其中第个原则,保证了依赖的逐层性,及整个架构的依赖是逐层向下的,而不能跨层依赖。第二个原则,则保证了依赖的单向性,及只能上层依赖底层,而不能底层反过来依赖上层。针对接口编程,而不是针对实现编程这里所指的接口,不是特指编程语言中的具体语言元素如中由定义的语言接口,而是指种抽象的,在语义层面上起着接合作用语义体。它的具体实现,可能是接口,可能是抽象类,甚至可能是具体类。我认为,从不同的视角,接口可以有以下两种定义接口是组规则的集合,它规定了实现本接口的类或接口必须拥有的组规则。体现了自然界如果你是„„则必须能„„的理念。接口是在定粒度视图上同类事物的抽象表示。注意这里我强调了在定粒度视图上,因为同类事物这个概念是相对的,它因为粒度视图不同而不同。具体到层架构中,针对接口编程的意义在部分上是
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 63 页
第 2 页 / 共 63 页
第 3 页 / 共 63 页
第 4 页 / 共 63 页
第 5 页 / 共 63 页
第 6 页 / 共 63 页
第 7 页 / 共 63 页
第 8 页 / 共 63 页
第 9 页 / 共 63 页
第 10 页 / 共 63 页
第 11 页 / 共 63 页
第 12 页 / 共 63 页
第 13 页 / 共 63 页
第 14 页 / 共 63 页
第 15 页 / 共 63 页
预览结束,还剩
48 页未读
阅读全文需用电脑访问
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。