您的位置:首页 > 其它

《大话设计模式》——简单工厂模式1

2016-02-20 15:11 288 查看
之前的编程一般都是写一个个的方法,然后调用,自我感觉也还行,但是这不是面向对象编程!

为什么用类代替方法?

方法是单个独立地,顶多算是结构化编程。面向对象编程:封装、多态、继承、抽象。

面向对象编程:类、封装、多态、继承。

目标:易于维护、扩展、复用、灵活性好、降低耦合度。

手段:业务的封装:让业务逻辑与界面逻辑分开,降低耦合度。耦合度低了才易于维护和扩展。

简单工厂模式的关键是:

1、父类子类间的继承;

2、创建一个子类,复制给父类对象;

3、虚函数 重写。

缺点:只是解决了各个子类对象的创建问题,扩展时总是需要修改工厂类。

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

namespace WindowsFormsApplication1
{
public class Operation
{
private double _Num1=0;
private double _Num2=0;

public double Num1
{
get { return _Num1; }
set { _Num1 = value; }
}
public double Num2
{
get { return _Num2; }
set { _Num2 = value; }
}
public virtual double GetResult()
{
double result=0;
return result;
}
}

class OperationAdd : Operation
{
public override double GetResult()
{
return Num1 + Num2;
}
}

class OperationSub : Operation
{
public override double GetResult()
{
return Num1 - Num2;
}
}

class OperationMul : Operation
{
public override double GetResult()
{
return Num1 * Num2;
}
}

class OperationDiv : Operation
{
public override double GetResult()
{
if (Num2 == 0)
throw new Exception("除数不能为0。");
return Num1 / Num2;
}
}

public class OperationFactory
{
public static Operation createOperation(String operation)
{
Operation oper = null;
switch (operation)
{
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
}
return oper;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: