내 winform 프로젝트에서 나는 그래픽 모델 - 클래스 : Rectangle
, Assosiation line
및 Text
을 가지고 있습니다. RectangleGraphicPathBuilder
등 예 : 각 모델에 대한 그래픽하는 Pathes를 생성개체 유형에 따라 달라지는 생성 패턴
public class Rectangle
{
public short Id { get; set; }
public short Zindex { get; set; }
public Color BackColor { get; set; }
public bool Selected { get; set; }
public Size Size{ get; set; }
}
그리고 클래스와 일반 inteface을 IPathBuilder
: 예
public class RectangleGraphicPathBuilder : IPathBuilder
{
protected override GraphicsPath Build(IShape inShape)
{
var shape = inShape as Rectangle;
var newPath = new GraphicsPath();
newPath.AddRectangle(new Rectangle(shape.Location.X, shape.Location.Y, shape.Size.Width, shape.Size.Height));
return newPath;
}
}
그리고 나는 모양 동안이 빌더를 호출 몇 가지 패턴을 사용할 필요가 컬렉션에서 반복합니다. 좋아요 :
forech(IShape shape in shapeColection){
var path = IPathBuilder.Builder(shape);
}
나는 그것에 대해 어떤 조언도 기뻐할 것입니다.
새로운 개체를 만드는 것이 아니라 개체를 복사하는 것처럼 보입니다. 복사 또는 복제 메서드를 IShape에 넣고 각 클래스에서 고유 한 방식으로 구현하는 방법은 무엇입니까? –
Model에 PathGenerator 메서드를 추가한다는 의미입니까? 그 모델에는 매개 변수 만 포함되어 있다고 가정합니다. 색상, 크기 등. 그리고 SPIial 서비스 IPathBuilder를 제공하고자하는 그래픽 패쉬에 대한 기능이 있습니다. –