MVC 中的 V 设计一个框架 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       在前文中(基于MVC三层架构结合自己理念生成的四层架构)中,我大体的说了说整个架构上的设计,但是我们没怎么谈论具体各个层面上的设计说明,下面我将就这些层次分别说下具体的设计,本次文章我先说明一下我在VIEW层的设计架构。当然这些设计是在我的项目中实践过了的,我本人也认为有很多好处的,拿来详细说明一下:特别指出一下,我是在.NET的,这个设计不局限B/S还是C/S,因为我的实际项目这两中项目都有。
       我先给大家一个具体的包和他们之间关系的一个Package Diagram
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
上图我们看到了,整个View包里面包含Form/PageMyControlControlsManageResources四个包,从名称上我们可以看到,Form/Page包里面是各个页面或者窗体,MyControl包里面放的是我们在开发过程中需要设计的自定义控件,Resources包中是文件资源,这三个包大家都是可以理解的。现在重点我来说下这第四个包——ControlsManage,可能很多人要问:你前面说的那三个都可以理解,这最后一个是什么?干什么用的?为什么要设计成这样?
       在说明之前我们来几个例子。我们设计一个窗体,叫ExampleForm,在里面有四个控件ListViewDataGridViewComboBoxMenuStrip。像什么Label之类的控件我就不说了,拿比较麻烦的这四个控件来举例效果比较明显。我们在ControlsManage里面设计四个接口例如(ListViewManage),这个接口做什么用呢,用来处理与ListView相关的所有操作比如(添加一个复杂对象,获取所点击的对象等等)。那么我们在项目制作中怎么使用呢?如下的流程图:
我们可以看到,通过Control层来的内容后,我们要找到要显示控件,调用上面写好的ListViewManage接口提供的方法显示我们的控件,显示这个方法我们可以通过重载的方法显示多态或者不同的ListViewDataGridViewComboBoxMenuStrip等控件也是这样处理。如此做来我们将整个项目中的这个四个控件都都接口来进行处理,我认为这对于开发分类管理和代码分类管理是很有好处的,而且我们的控件显示接口也实现了最大化的复用。
       我想结合上图和文字,大家已经能够大致明白我想说的意思了吧。现在我来说说我这个设计优点、缺点和设计初衷。
       优点:
1、  控件显示接口的复用,因为整个系统都是用这个接口。
2、  减少开发风险和减少错误机率,复用多了,代码量就会减少,有效的高质量代码就会增加。
3、  当出现迭代式增量开发的时候我们可以根据需要一部分一部分的暴露接口,所以说比较好进行控件显示的控制。
4、每个层次责任分明,体现了层次的功能单一原则。
       缺点:
1、  层次增加了,很多新程序员会觉得开发起来慢。
2、  代码中对象多了,资源也会多消耗。
3、  如果后来的维护人员在不了解架构的情况下不按照规则修改代码,会让代码更加负责。
       设计初衷:
当然主要是为了自己开发起来方便,我的思路主要是借鉴了SOA的设计思路,将每个控件的处理看做是一个一个内部小接口,窗体在现实的时候拿着控件和数据去找接口。

 

思路和设计不是很成熟,希望大家多提意见,谢谢!