摘要: 目录:1:应用场景2:传统工厂模式3:传统工厂模式实现1中应用场景的弊端4:IOC和工厂模式连合使用实现1中描述的场景1:应用场景 在MYPM的工作流业务中,有三种业务对像可以走工作流,分别为:文档,项目和工作任务;这三种业务对像在走工作流时,具体处理业务是有差别的,工作流引擎要根据不同的业务对像(文档,项目和工作任务),调用不同的处理器. 2:传统工厂模式(1)简单工厂模式用法:客户端利用SimpleFactory产生一个具体产品(用AbstractProduct引用),当然这需要客户端传参,但判断逻辑位于SimpleFactory中(如switch语句)。扩展:若需要增加具体产品E,则须. 阅读全文
posted @ 2013-11-28 16:21 行进 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Iterator:枚举器如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的。这在C# 2.0中比 C# 1.1更容易实现一些。作为演示,我们先在 C# 1.1中为一个简单的集合添加枚举,然后我们修改这个范例,使用新的C#2.0 枚举构建方法。我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整型,这个整型用于记录数组中已经添加了多少字符串。构造函数将对数组进行初始化并使用传递进来的参数填充它。1 public ListBox(params string[] initialStrings)2 {3. 阅读全文
posted @ 2013-11-28 15:39 行进 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 1.使用命名的方法:场景:通用代码开发者想要创建一个通用的方法来筛选整型数组,但是这个通用方法要能够制定用来筛选该数组的的算法。首先,开发者必须声明一个委托delegate,该委托的设计原型就是收到一个int(整型)类型,如果在被筛选的数组中确实包含一个int类型,则这个委托将返回true。创建一个工具类并添加了delegate和筛选方法,这个公共代码如下: 1 public class Common 2 { 3 public delegate bool IntFilter(int i); 4 public static int[] FilterArra... 阅读全文
posted @ 2013-11-28 14:28 行进 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为 阅读全文
posted @ 2013-11-28 11:17 行进 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1,委托概述常用数据类型(如int)的使用方法:先定义一个变量,然后再给它赋值,如下:int i;//定义变量i=100;//给变量赋值类似地,委托也可以看成是一种数据类型,可以用于定义变量。但它所定义的变量能接收的值只能是一个方法例: 定义一个类MathOpt,定义一个方法Add: public class MathOpt { public int Add(int argument1,int argument2) { return argument1+argument2; } } 定义一个委托数据类型MathOptDelegate: public delegate int MathOptD. 阅读全文
posted @ 2013-11-28 10:23 行进 阅读(198) 评论(0) 推荐(0) 编辑