using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*确定原材料
* 原材料的加工方法
* 定义工厂接口
* 工厂内生产线选择(返回 实例化原材料加工方法)加工方法
*/
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
NumAdd test = new NumAdd(); //确定生产线
Number num = test.CreateOperation(); //加入(实例化)原材料
num.Num1 = 12;
num.Num2 = 10;
Console.WriteLine( num.Result()); //使用制作方法
Number num2 = test.CreateOperation(); //加入(实例化)原材料
num2.Num1 = 2;
num2.Num2 = 3;
Console.WriteLine(num2.Result()); //使用制作方法
}
}
class Number //原材料
{
public double Num1;
public double Num2;
public virtual double Result()
{
return 0;
}
}
class NumberAdd : Number //制作方法
{
public override double Result()
{
return Num1 + Num2;
}
}
class NumberSub : Number //制作方法
{
public override double Result()
{
return Num1 - Num2;
}
}
interface Factory // 工厂
{
Number CreateOperation();
}
class NumAdd : Factory //生产线
{
public Number CreateOperation()
{
return new NumberAdd();
}
}
class NumSub : Factory //生产线
{
public Number CreateOperation()
{
return new NumberSub();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*确定原材料
* 原材料的加工方法
* 定义工厂接口
* 工厂内生产线选择(返回 实例化原材料加工方法)加工方法
*/
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
NumAdd test = new NumAdd(); //确定生产线
Number num = test.CreateOperation(); //加入(实例化)原材料
num.Num1 = 12;
num.Num2 = 10;
Console.WriteLine( num.Result()); //使用制作方法
Number num2 = test.CreateOperation(); //加入(实例化)原材料
num2.Num1 = 2;
num2.Num2 = 3;
Console.WriteLine(num2.Result()); //使用制作方法
}
}
class Number //原材料
{
public double Num1;
public double Num2;
public virtual double Result()
{
return 0;
}
}
class NumberAdd : Number //制作方法
{
public override double Result()
{
return Num1 + Num2;
}
}
class NumberSub : Number //制作方法
{
public override double Result()
{
return Num1 - Num2;
}
}
interface Factory // 工厂
{
Number CreateOperation();
}
class NumAdd : Factory //生产线
{
public Number CreateOperation()
{
return new NumberAdd();
}
}
class NumSub : Factory //生产线
{
public Number CreateOperation()
{
return new NumberSub();
}
}
}