实施 Resize/Move/Save 访问者模式
Implement a Resize/Move/Save Visitor Pattern
我正在制作一个绘画程序,我可以制作 Rectangle/Ellipse。在那个程序中,我可以 move/resize 它们,但也可以保存它们。
我现在的问题是我需要制作访客模式(Resize/Move 并保存)但我不知道应该从哪里开始。
这些是我目前使用的方法:
public abstract void ResizeShape(PosSizableRect posSizableRect, float lastX, float lastY, float newX, float newY);
public abstract void MoveShape(int x, int y);
private void Write(List<Shape> shapes, StreamWriter streamWriter, string tabs = "")
抱歉不能给你图片因为我的名誉...
public interface IShape
{
void Resize(PosSizableRect posSizableRect, float lastX, float lastY, float newX, float newY);
void Move(int dx, int dy);
void Write (StreamWriter writer, string tabs ="");
void AcceptVisitor(IVisitor visitor);
}
public interface IVisitor
{
void Visit(IShape shape);
}
这就是接口,现在是实现(一个示例)
public class MoveVisitor : IVisitor
{
private int dx;
private int dy;
public MoveVisitor(int dx, int dy)
{
this.dx = dx;
this.dy = dy;
}
public void Visit(IShape shape)
{
shape.Move(dx,dy);
}
}
我正在制作一个绘画程序,我可以制作 Rectangle/Ellipse。在那个程序中,我可以 move/resize 它们,但也可以保存它们。
我现在的问题是我需要制作访客模式(Resize/Move 并保存)但我不知道应该从哪里开始。
这些是我目前使用的方法:
public abstract void ResizeShape(PosSizableRect posSizableRect, float lastX, float lastY, float newX, float newY);
public abstract void MoveShape(int x, int y);
private void Write(List<Shape> shapes, StreamWriter streamWriter, string tabs = "")
抱歉不能给你图片因为我的名誉...
public interface IShape
{
void Resize(PosSizableRect posSizableRect, float lastX, float lastY, float newX, float newY);
void Move(int dx, int dy);
void Write (StreamWriter writer, string tabs ="");
void AcceptVisitor(IVisitor visitor);
}
public interface IVisitor
{
void Visit(IShape shape);
}
这就是接口,现在是实现(一个示例)
public class MoveVisitor : IVisitor
{
private int dx;
private int dy;
public MoveVisitor(int dx, int dy)
{
this.dx = dx;
this.dy = dy;
}
public void Visit(IShape shape)
{
shape.Move(dx,dy);
}
}