1. 程式人生 > >設計模式之工廠方法模式(FactoryMethod)

設計模式之工廠方法模式(FactoryMethod)

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

//工廠方法模式(Factory Method):定義一個用於建立物件的介面,讓子類決定例項化哪一個
//類,工廠方法是一個類的例項化延遲到其子類。
//工廠方法是類的建立模式,定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類。namespace FactoryMethod
{
class Factory1
{
}
publicclass Operation
{
privatedouble _numberA =0;
privatedouble _numberB =0;

public
double NumberA
{
get { return _numberA; }
set { _numberA = value; }
}

publicdouble NumberB
{
get { return _numberB; }
set { _numberB = value; }
}
publicvirtualdouble GetResult()
{
double result =0;
return result;
}
}

class OperationAdd : Operation
{
publicoverride
double GetResult()
{
double result =0;
result
= NumberA + NumberB;
return result;
}
}

class OperationSub : Operation
{
publicoverridedouble GetResult()
{
double result =0;
result
= NumberA - NumberB;
return result;
}
}

class OperationMul : Operation
{
publicoverridedouble GetResult()
{
double result =0;
result
= NumberA * NumberB;
return result;
}
}

class OperationDiv : Operation
{
publicoverridedouble GetResult()
{
double result =0;
if (NumberB ==0)
thrownew Exception("除數不能為0");
result
= NumberA / NumberB;
return result;
}
}
//工廠介面interface IFactory
{
Operation CreateOperation();
}
//具體工廠介面class AddFactory : IFactory
{
public Operation CreateOperation()
{
returnnew OperationAdd();
}
}
class SubFactory : IFactory
{
public Operation CreateOperation()
{
returnnew OperationSub();
}
}
class MulFactory : IFactory
{
public Operation CreateOperation()
{
returnnew OperationMul();
}
}
class DivFactory : IFactory
{
public Operation CreateOperation()
{
returnnew OperationDiv();
}
}
}