控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

设计模式应用实例--基于Command模式和MVC构建系统架构

作者:RayGu 出处:博客园 2010年01月27日 阅读:

 看过一些设计模式的书,不喜欢这种很多书上的举例方式,拿个什么事件,或者物体来举例。我认为这只是教科书,即便是背熟了,也只是背熟了而已,能融会贯通的使用吗,我想通过几个例子来阐明设计模式在实际项目开发中的应用。

      首先要说的是MVC模式,我不想再重复详细的描述什么是MVC,MVC的特点等等,需要了解这些知识的人,另外找资料了解,我只是准备用一个思想付诸于MVC的实现。当然,我也会简单的说,MVC就是模型,试图,控制器的组成,MVC的特点是各施其职,互不干涉。

      好了,接着,我再提出一个设计模式,Command模式,或许了解这个模式的人比了解MVC的要少很多,没关系,可以百度,看看什么是Command模式,当然也可以看看类似教科书对Command模式的描述。我只是简单的说是解耦接收者和发送者的联系。其实就是"第三者",至于详细的我就不多说了。

      好了,下面通过一个大型项目的简化举例,来表明,如何使用Command模式和MVC模式构建所谓的三层架构。该项目的原型是一个跨国公司的小型ERP系统。所以,我会用其中一个模块来阐述实际应用。当然这个模块会是信息管理系统中的常用模块。

      新建解决方案,为了演示方便,所以我是这么新建的。

 
 

只是为了从字面上说明,这个是基于MVC来构建的。

接下去在View模块中,我新建一个View,员工管理的页面,我想这也是任何一个信息系统所必须要使用到的模块。

ViewStaffManager -- View

Staff -- Model

Staff -- StaffList

BaseController -- Control

Command -- Control

CommandGetStaff -- Control

以上是对这个项目演示的基本功能建立。

接下去,一部一部实现功能。

首先介绍业务对象,Model的开发。

以下是业务实体类

Code

业务实体集合类

Code

 

接下去,做控制器,控制器其实就是一个Command模式。

using System;
using System.Collections.Generic;
using System.Text;

namespace Control
{
    
public class Command
    {
        
public abstract object Execute();
    }
}

 

控制器执行基类。

Code

 

Code

 

之所以要做控制器的实质就是第三者的作用,通过控制器来控制模型和视图的链接。

继续做下页面。

Code

 

以上就是实例的基本思想。以及对Command模式和MVC模式的应用介绍。

在之后下一篇,我想介绍下单件模式在实际开发中的应用,也准备对反射工厂模式做一下演示。

我做这个演示的目的不是为了说明设计模式的概念,而是我自己对设计模式应用的举例。

当然实际项目中的复杂度高于该实例百倍。但是基本的核心思想就是如此。(本文由控件中国网转载)

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统