using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo
{
public interface IPmSurface
{
void 选面();
}
public interface IPmOperation
{
void 创建策略();
void 创建刀具();
void 创建连接路径();
}
public interface IPmBlock
{
void 创建毛坯();
}
public interface IPmCalc
{
void PM计算刀路();
}
public class PM曲面加工 : IPmOperation, IPmSurface, IPmCalc, IPmBlock
{
public void 创建毛坯()
{
Console.WriteLine("创建曲面毛坯");
}
public void 创建策略()
{
Console.WriteLine("创建曲面策略");
}
public void 创建刀具()
{
Console.WriteLine("创建曲面刀具");
}
public void 创建连接路径()
{
Console.WriteLine("创建曲面连接路径");
}
public void 选面()
{
Console.WriteLine("选面");
}
public void PM计算刀路()
{
选面();
创建毛坯();
创建策略();
创建刀具();
创建连接路径();
Console.WriteLine("曲面加工计算");
Console.WriteLine("-------------------------------------");
}
}
public class PM刻字 : IPmOperation, IPmCalc
{
public void 创建策略()
{
Console.WriteLine("创建刻字操作");
}
public void 创建刀具()
{
Console.WriteLine("创建刻字刀具");
}
public void 创建连接路径()
{
Console.WriteLine("创建刻字连接路径");
}
public void PM计算刀路()
{
创建策略();
创建刀具();
创建连接路径();
Console.WriteLine("创建刻字OK");
Console.WriteLine("-------------------------------------");
}
}
public class PM粗加工 : IPmOperation,IPmCalc, IPmBlock
{
public void 创建毛坯()
{
Console.WriteLine("创建粗加工毛坯");
}
public void 创建策略()
{
Console.WriteLine("创建粗加工策略");
}
public void 创建刀具()
{
Console.WriteLine("创建粗加工刀具");
}
public void 创建连接路径()
{
Console.WriteLine("创建粗加工连接路径");
}
public void PM计算刀路()
{
创建毛坯();
创建策略();
创建刀具();
创建连接路径();
Console.WriteLine("粗加工计算OK");
Console.WriteLine("-------------------------------------");
}
}
public class PM加工集合
{
List<IPmCalc> OperList = new List<IPmCalc>();
public void Add(IPmCalc oper)
{
OperList.Add(oper);
}
public void AddRange(IEnumerable<IPmCalc> opers)
{
OperList.AddRange(opers);
}
public void PM开始计算()
{
if(OperList.Count>0)
{
OperList.ForEach((IPmCalc o) =>
{
o.PM计算刀路();
});
}
}
}
}