上章详细讲了EnterpriseFrameWork框架中的每个分层,这都是从技术层面来说明,也就是我们知道怎么来建一个控制器或一个业务对象,但开发过程中应该建一个什么样的控制器或业务对象了?本章的主要内容是说明根据系统业务、客户需求如何来设计合理的控制器和业务对象

文件要点:

1.粗略介绍系统分析设计过程

2.框架分层结构怎么结合业务

大概介绍一下我对开发一个系统的分析设计过程吧,决定开发某个系统后,肯定是先了解系统相关业务内容,根据自己的见识这个应该属于哪一类的系统,是类似进销、还是收费系统或其他,也在网上也找找有没有类似业务的系统;这些在开发一个系统前都是很值得参考与分析的资料;这样你心里也有了个底,自己团队能不能做出来,要花多长时间、多大资源才能完成;心里有底后就可以三板斧完成整个系统分析设计过程,

第一,根据客户需求,结合业务场景画出一些业务活动图、用例、实体等

      第二,接着根据经验或理解了设计出界面原型和数据库结构

      第三,然后针对关键性系统问题进行领域分析得到领域对象模型

这样系统的分析设计已初步完成,然后就是把设计转化为代码,以后随着对业务的深入理解而进行不然迭代提升;而且个人觉得用例图与领域模型可以很好的帮助自己在业务方面的理解;

再看下面几个问题在修改代码的时候经常碰到,

1)修改一处联动性功能问题,往往一串代码文件,因为把实现代码分散在多个代码文件中而没有放在一个文件中;

2)修改一个关键性系统问题,往往会修改多个模块的代码才能彻底解决,因为你并没有把解决这个问题的代码封装成业务对象;

解决这两个问题就是我们的代码的分布一定要与实际业务要对应;让我们可以快速找到需要修改的代码并花最小代价完成修改;

用例:是描叙在逻辑上相对完整的功能流程;

      领域模型:专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系;

我们把用例和领域模型换成纵向和横向两个角度来看上面两个问题,一个联动性很强的功能问题都对应着某个用例,而关键性系统问题都应该进行领域分析得出领域对象模型;所以把修改内容控制在一个用例中或一个领域对象模型中,就很容易控制和实行;与功能问题密切相关的不就是界面与Controller控制器,而与系统级问题相关的不就是ObjectModel业务对象;

Controller与ObjectModel没有包含或被包含的关系,两者完全是平级的;一个Controller可以调用多个Object,而一个Object同样可能被多个Controller调用;为什么这么对应,也是方便更容易的理解代码,保持代码阅读的连贯性;如果在代码设计过程中没有一个指导性思想,是很容易混淆代码文件的,如:纠结的是一个类或方法不知道放在哪更合适,就跟给多个控件或变量起名一样困难;

由此在项目中使用框架的过程中,反过来再看之前的系统业务分析与设计得出:框架中的Controller对应业务中的用例,ObjectModel对应业务中的领域对象模型;见下图

由于本章的内容没有什么具体的代码和实例,都是一些形而上的见解,所以难免会有个人的局限性,但是说的都是在实际项目中的经验和领悟;这些东西个人觉得讲解一些个人经历来进行引导性思考,比摆出一套完整的理论应该更合适;比如系统分析师或系统设计师,不可能通过学习两本大牛的书籍就能成为的,而是不断在项目中通过你的经验累积磨练而成的,一个系统设计师把自己的方法与套路交给你,而你也不是学会了就能够成为一个系统设计师的;既然这样那还不如讲讲个人经历,讲讲走到每个阶段的心情与感悟,这样可能会更容易产生共鸣;

十一、EnterpriseFrameWork框架的分层与系统业务的结合的更多相关文章

  1. 十、EnterpriseFrameWork框架的分层架构及意义(控制器、业务对象、实体、Dao之间关系)

    本章内容主要包括两个方面,一.是框架分层(控制器.业务对象.实体.Dao)的详细说明,二.是对比常用三层结构的区别和优势: 本文要点: 1.框架中的各个分层详细说明 2.对比常用三层结构的区别和优势 ...

  2. 十八、【开源】EnterpriseFrameWork框架核心类库之Winform控制器

    回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WinContro ...

  3. 十七、EnterpriseFrameWork框架核心类库之Web控制器

    回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WebContro ...

  4. 美团分布式服务通信框架及服务治理系统OCTO

     一.什么是OCTO 定义: OCTO是美团的分布式服务通信框架及服务治理系统,属于公司级基础设施,目前尚未开源. 目标: 为公司所有业务提供统一的服务通信框架,使业务具备良好的服务运营能力,轻松实现 ...

  5. 一、EnterpriseFrameWork框架总体介绍

    EnterpriseFrameWork框架是自己在工作之余的得意之作,经过了几年时间的不断重构,现在终于有了现在的样子:刚开始只是为了方便开发WEB系统,随着项目越做越多,新的功能也就不断补充进去,补 ...

  6. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

  7. 十六、【适合中小企业的.Net轻量级开源框架】EnterpriseFrameWork框架核心类库之单点登录SSO

    回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U 单点登录(Single Sign ...

  8. 十二、EnterpriseFrameWork框架核心类库之与EntLib结合

    从本章开始对框架的讲叙开始进入核心类库的讲解,前面都是对框架外在功能讲解,让人有个整体的概念,知道包含哪些功能与对系统开发有什么帮助.以后多章都是讲解核心类库的,讲解的方式基本按照代码的目录结构,这样 ...

  9. 基于SSH框架的网上书店系统开发的质量属性

    基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...

随机推荐

  1. 喜迎2015年新年:坦克大战(Robocode)游戏编程比赛图文总结

    2015春节前,葡萄城的软件工程师以特有的方式来迎接新年——2015新年编程邀请赛. 邀请赛的初衷,是和大家一起,寻找编程最初的单纯的快乐.       在代码的世界里,添加动力,继续远航.      ...

  2. [BTS] Error Can't update assemblies.

    Removal of the assembly failed. Make sure that all items in the assembly you are trying to remove fu ...

  3. C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例

    DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...

  4. atitit.web 推送实现方案集合

    atitit.web 推送实现方案集合 1. 俩中模式 Push/Pull 1 2. 需要实现的特性 2 2.1. 推送消息广播. 2 2.2. 推送定向消息. 2 2.3. 提供连接上线前.上线.下 ...

  5. Linux内核如何装载和启动一个可执行程序

    exec 本节我们分析exec系统调用的执行过程. exec一般和fork调用,常规用法是fork出一个子进程,然后在子进程中执行exec,替换为新的代码. do_exec 跟上次的fork类似,这里 ...

  6. 【关于新版Cocos2dx/Cocos2d-JS】安装包和使用方式的变化

    最近有读者反馈说,最新的Cocos2dx或者说2d-JS下载之后跟书本说的安装方式相差很大. 刚下载最新版3.9试了一下,其实用法还是没有变的. 新版把cocos2dx和cocos2d-js合并了,这 ...

  7. 生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)

    一.导出相关dll库 将原先的CmdInfoToPipe.h class后加入关键字 __declspec(dllexport) #ifndef NETINFO_CMDINFOTOPIPE_H_ #d ...

  8. 软件设计之UML—UML的构成[上]

      UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模.UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得 ...

  9. Lucene 4.X 倒排索引原理与实现: (3) Term Dictionary和Index文件 (FST详细解析)

    我们来看最复杂的部分,就是Term Dictionary和Term Index文件,Term Dictionary文件的后缀名为tim,Term Index文件的后缀名是tip,格式如图所示. Ter ...

  10. EF性能之关联加载

    鱼和熊掌不能兼得 ——中国谚语 一.介绍 Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和熊掌不能兼得.但是,通过 ...