十一、EnterpriseFrameWork框架的分层与系统业务的结合
上章详细讲了EnterpriseFrameWork框架中的每个分层,这都是从技术层面来说明,也就是我们知道怎么来建一个控制器或一个业务对象,但开发过程中应该建一个什么样的控制器或业务对象了?本章的主要内容是说明根据系统业务、客户需求如何来设计合理的控制器和业务对象。
文件要点:
1.粗略介绍系统分析设计过程
2.框架分层结构怎么结合业务
大概介绍一下我对开发一个系统的分析设计过程吧,决定开发某个系统后,肯定是先了解系统相关业务内容,根据自己的见识这个应该属于哪一类的系统,是类似进销、还是收费系统或其他,也在网上也找找有没有类似业务的系统;这些在开发一个系统前都是很值得参考与分析的资料;这样你心里也有了个底,自己团队能不能做出来,要花多长时间、多大资源才能完成;心里有底后就可以三板斧完成整个系统分析设计过程,
第一,根据客户需求,结合业务场景画出一些业务活动图、用例、实体等
第二,接着根据经验或理解了设计出界面原型和数据库结构
第三,然后针对关键性系统问题进行领域分析得到领域对象模型
这样系统的分析设计已初步完成,然后就是把设计转化为代码,以后随着对业务的深入理解而进行不然迭代提升;而且个人觉得用例图与领域模型可以很好的帮助自己在业务方面的理解;
再看下面几个问题在修改代码的时候经常碰到,
1)修改一处联动性功能问题,往往一串代码文件,因为把实现代码分散在多个代码文件中而没有放在一个文件中;
2)修改一个关键性系统问题,往往会修改多个模块的代码才能彻底解决,因为你并没有把解决这个问题的代码封装成业务对象;
解决这两个问题就是我们的代码的分布一定要与实际业务要对应;让我们可以快速找到需要修改的代码并花最小代价完成修改;
用例:是描叙在逻辑上相对完整的功能流程;
领域模型:专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系;
我们把用例和领域模型换成纵向和横向两个角度来看上面两个问题,一个联动性很强的功能问题都对应着某个用例,而关键性系统问题都应该进行领域分析得出领域对象模型;所以把修改内容控制在一个用例中或一个领域对象模型中,就很容易控制和实行;与功能问题密切相关的不就是界面与Controller控制器,而与系统级问题相关的不就是ObjectModel业务对象;
Controller与ObjectModel没有包含或被包含的关系,两者完全是平级的;一个Controller可以调用多个Object,而一个Object同样可能被多个Controller调用;为什么这么对应,也是方便更容易的理解代码,保持代码阅读的连贯性;如果在代码设计过程中没有一个指导性思想,是很容易混淆代码文件的,如:纠结的是一个类或方法不知道放在哪更合适,就跟给多个控件或变量起名一样困难;
由此在项目中使用框架的过程中,反过来再看之前的系统业务分析与设计得出:框架中的Controller对应业务中的用例,ObjectModel对应业务中的领域对象模型;见下图

由于本章的内容没有什么具体的代码和实例,都是一些形而上的见解,所以难免会有个人的局限性,但是说的都是在实际项目中的经验和领悟;这些东西个人觉得讲解一些个人经历来进行引导性思考,比摆出一套完整的理论应该更合适;比如系统分析师或系统设计师,不可能通过学习两本大牛的书籍就能成为的,而是不断在项目中通过你的经验累积磨练而成的,一个系统设计师把自己的方法与套路交给你,而你也不是学会了就能够成为一个系统设计师的;既然这样那还不如讲讲个人经历,讲讲走到每个阶段的心情与感悟,这样可能会更容易产生共鸣;
十一、EnterpriseFrameWork框架的分层与系统业务的结合的更多相关文章
- 十、EnterpriseFrameWork框架的分层架构及意义(控制器、业务对象、实体、Dao之间关系)
本章内容主要包括两个方面,一.是框架分层(控制器.业务对象.实体.Dao)的详细说明,二.是对比常用三层结构的区别和优势: 本文要点: 1.框架中的各个分层详细说明 2.对比常用三层结构的区别和优势 ...
- 十八、【开源】EnterpriseFrameWork框架核心类库之Winform控制器
回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WinContro ...
- 十七、EnterpriseFrameWork框架核心类库之Web控制器
回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WebContro ...
- 美团分布式服务通信框架及服务治理系统OCTO
一.什么是OCTO 定义: OCTO是美团的分布式服务通信框架及服务治理系统,属于公司级基础设施,目前尚未开源. 目标: 为公司所有业务提供统一的服务通信框架,使业务具备良好的服务运营能力,轻松实现 ...
- 一、EnterpriseFrameWork框架总体介绍
EnterpriseFrameWork框架是自己在工作之余的得意之作,经过了几年时间的不断重构,现在终于有了现在的样子:刚开始只是为了方便开发WEB系统,随着项目越做越多,新的功能也就不断补充进去,补 ...
- 六、EnterpriseFrameWork框架基础功能之权限管理
回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...
- 十六、【适合中小企业的.Net轻量级开源框架】EnterpriseFrameWork框架核心类库之单点登录SSO
回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U 单点登录(Single Sign ...
- 十二、EnterpriseFrameWork框架核心类库之与EntLib结合
从本章开始对框架的讲叙开始进入核心类库的讲解,前面都是对框架外在功能讲解,让人有个整体的概念,知道包含哪些功能与对系统开发有什么帮助.以后多章都是讲解核心类库的,讲解的方式基本按照代码的目录结构,这样 ...
- 基于SSH框架的网上书店系统开发的质量属性
基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...
随机推荐
- Objective-C与C style语言的简单类比
1. 关于Objc中函数调用类比 [_lblHelloWorld setHidden:![_lblHelloWorld isHidden]]; 类比为: _lblHelloWorld.setHidde ...
- PHP动态压缩js,css
PHP动态压缩js,css 列表项 标签: PHP 正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求.防止轻易查看源代码. 使用 只需要在头部引入一下代码即可: <me ...
- SSDB安装配置
1.下载ssdb wget -O ssdb-master.zip https://codeload.github.com/ideawu/ssdb/zip/master 2.编译安装 unzip ssd ...
- Nodejs学习笔记(十三)— PM2
目录 简介 pm2安装 操作 启动 关闭 其它方式启动/关闭 从PM2中删除 重载和重启 查看详细信息 多项目操作 集群 其它操作 写在之后... 简介 PM2 pm2是一个内置负载均衡的node.j ...
- Leetcode 234 Palindrome Linked List 链表
判断链表是否是回文. 我直接将链表的一半进行倒置,然后将两半的链表进行比较 /** * Definition for singly-linked list. * struct ListNode { * ...
- 一个优秀windows C++程序员的知识体系
思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...
- maven nexus-staging-maven-plugin exception-connect timed out
不知道是国内的网络的问题还是别的原因,在deploy一个maven的artifact到oss server的时候总是报错: Failed to execute goal org.sonatype.pl ...
- Hbase&Hadoop常用命令
Hbase中根据Rowkey的前缀Prefix查询数据: scan 'test_xiaomifeng_monitoring_log',{FILTER => "(PrefixFilter ...
- asp.net mvc 动态显示不同的部分视图
首先是AJAX请求 //第一次打开 默认s单行文本 $.ajax({ type: "GET", url: "/Admin/Field/ChoiceType4Edit&qu ...
- nginx 反向代理 与 Apache backend的配置联合配置
nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1. 设置域名, 子域名映射到指定服务器ip ...