这是一个非常简单的例子。请注意,移动功能和点并不准确,显然需要实施才能使这项工作。
创建一个接口和抽象类以允许对象组的继承和多态性。
public interface IPositionable
{
void Move(int x, int y, int z);
}
public abstract class Positionable : IPositionable
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
public void Move( int x, int y, int z )
{
this.x += x;
this.y += y;
this.z += z;
}
}
Next 将这些利用到您将使用的形状类型中
public class Rectangle : Positionable{}
public class Triangle : Positionable{}
public class Square : Positionable{}
准备好基本部分后,您应该使用Mediator Pattern。
public class PositionMediator
{
public List<IPositionable> Group { get; set; }
public PositionMediator()
{
Group = new List<IPositionable>();
Group.Add(new Rectangle());
Group.Add(new Triangle());
Group.Add(new Square());
}
public void MoveGroup( int x, int y, int z )
{
foreach( var pos in Group )
{
pos.Move(x,y,z);
}
}
}
一旦到位,您可以像这样控制它:
void Main()
{
var pm = new PositionMediator();
pm.MoveGroup(1,2,3);
}