标签:
一:简单工厂(使用计算器例子进行描述概括)
定义:
专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。
效果如图所示:

//父类
public abstract class Operation
{
public double NumberA { get; set; }
public double NumberB { get; set; }
public abstract double GetResult();
}
//子类 加法
public class OperationAdd:Operation
{
public override double GetResult()
{
double result = NumberA + NumberB;
return result;
}
}
//子类 减法
public class OperationJian:Operation
{
public override double GetResult()
{
double result = NumberA - NumberB;
return result;
}
}
//子类 乘法
public class OperationCheng:Operation
{
public override double GetResult()
{
double result = NumberA * NumberB;
return result;
}
}
//子类 除法
public class OperationChu:Operation
{
public override double GetResult()
{
if (NumberB == 0)
{
throw new Exception("除数不能为0!");
}
double result = NumberA / NumberB;
return result;
}
}
在计算按钮中获取两个操作数以及运算符、计算的方法
//获取两个操作数
int num1 = Convert.ToInt32(txtList1.Text);
int num2 = Convert.ToInt32(txtList2.Text);
//获取运算符
string oper = cboList.Text;
Operation calc=OperationFactory.CreateInstance(oper);
calc.NumberA = num1;
calc.NumberB = num2;
//计算方法
int result = 0;
try
{
result = Convert.ToInt32(calc.GetResult());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
label1.Text = result.ToString();
工厂类:(核心 )

二:单例模式
单例模式要求一个类只能有一个对象
四步骤:
①:定义一个类型和当前类名相同的静态变量
②:将构造改为私有
③:定义一个静态方法 给静态变量赋值,实例化对象并返回实例引用
④:将静态变量置空
public partial class Form1 : Form
{
//定义一个类型和当前类名相同的静态变量
public static Form1 frm;
//将构造改成私有
private Form1()
{
InitializeComponent();
}
//定义一个静态方法 给静态变量赋值
public static Form1 GetInstance()
{
if (frm == null)
{
frm=new Form1();
}
return frm;
}
//将静态变量置空
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
frm = null;
}
标签:
原文地址:http://www.cnblogs.com/hq-123/p/5391047.html