无意间发现了几篇好早以前做二次开发前的草稿,好蠢,不过很怀念。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 模板方法
{
public abstract class PMCalc
{
public abstract void 选择策略();
public abstract void 设置连接路径();
public abstract void 设置刀具();
public abstract void 设置转速进给();
/// <summary>
/// 一条完整的计算刀路宏
/// </summary>
public void TemplateMethod()
{
Console.WriteLine("这里执行一条完整的宏操作");
Console.WriteLine("pm执行计算毛坯的宏...");
选择策略();
Console.WriteLine("连接策略相同的操作");
设置连接路径();
Console.WriteLine("连接路径相同的操作");
Console.WriteLine("设置刀具前相同的操作");
设置刀具();
Console.WriteLine("设置刀具后相同的操作");
设置转速进给();
}
}
public class 加工方法 : PMCalc
{
public string 策略 { get; set; }
public string 刀具 { get; set; }
public string 转速 { get; set; }
public string 进给 { get; set; }
public string 连接路径 { get; set; }
public 加工方法() { }
public 加工方法(string st,string tool ,string sp ,string rate ,string load) {
策略 = st;
刀具 = tool;
转速 = sp;
进给 = rate;
连接路径 = load;
}
public override void 选择策略()
{
Console.WriteLine(string.Format("PM中选择{0}策略", 策略));
}
public override void 设置刀具()
{
Console.WriteLine(string.Format("选择{0}的刀具", 刀具));
}
public override void 设置转速进给()
{
Console.WriteLine(string.Format("转速{0},进给{1}", 转速, 进给));
}
public override void 设置连接路径()
{
Console.WriteLine(string.Format("使用粗加工的连接路径", 连接路径));
}
}
}
调用:
static void Main(string[] args)
{
加工方法 c1 = new 加工方法("粗加工","D10","3000","2500","粗加工连接路径");
加工方法 c2 = new 加工方法("中加工", "D10", "3000", "3500", "中加工连接路径");
加工方法 c3 = new 加工方法("精加工", "D10", "8000", "2500", "精加工连接路径");
c1.TemplateMethod();
Console.WriteLine("*********************************");
c2.TemplateMethod();
Console.WriteLine("*********************************");
c3.TemplateMethod();
Console.ReadKey();
}