using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PM装配器
{
public class PMCalc
{
public virtual void Calc()
{
Console.WriteLine("PM计算宏。。。");
}
}
public class PM装配器 : PMCalc
{
protected PMCalc Component;
public void PM装配(PMCalc p)
{
this.Component = p;
}
public override void Calc()
{
if (Component != null)
{
Component.Calc();
}
}
}
public class PMBlock : PM装配器
{
public override void Calc()
{
Console.WriteLine("设置毛坯的操作");
base.Calc();
}
}
public class PM添加基本操作 : PM装配器
{
public override void Calc()
{
Console.WriteLine("添加最基本的操作");
Console.WriteLine("添加刀具路径策略");
Console.WriteLine("添加刀具");
Console.WriteLine("添加相关参数(转速,进给...)");
base.Calc();
}
}
public class PMLoading : PM装配器
{
public override void Calc()
{
Console.WriteLine("设置连接路径的操作");
base.Calc();
}
}
public class PMPost : PM装配器
{
public override void Calc()
{
Console.WriteLine("设置后处理的操作");
base.Calc();
}
}
public class PMSelectFace : PM装配器
{
public override void Calc()
{
Console.WriteLine("选中一个面");
base.Calc();
}
}
}
//调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PM装配器
{
class Program
{
static void Main(string[] args)
{
PMCalc c = new PMCalc();
PMBlock b = new PMBlock();
PMLoading l = new PMLoading();
PMPost p = new PMPost();
PM添加基本操作 j = new PM添加基本操作();
PM装配器 z = new PM装配器();
//开始在PMCalc上进行包装
z.PM装配(c);
//添加后处理的操作
p.PM装配(z);
//添加连接路径的操作
l.PM装配(p);
//添加毛坯相关的操作
b.PM装配(z);
//添加基本的操作(策略,刀具,转速...)
j.PM装配(p);
//b.Calc();
//Console.WriteLine("***************************");
//l.Calc();
//Console.WriteLine("***************************");
//p.Calc();
//Console.WriteLine("***************************");
j.Calc();
Console.ReadKey();
}
}
}