我正在编写图形编辑器(图论)。假设顶点需要这些属性:
class Vertex{
int ID {get;}
Color color {get; set;}
Point point{get; set;}
}
但这违反了SRP(单一责任原则)。所以我创造了一些想法:
class Vertex{
int ID {get;}
}
class Positions{
private Dict<Vertex,Point> _pos;
setPosition(Vertex v, Point pos);
Point getPosition(Vertex v);
}
//etc.
正确的?
但是ViewModel对于顶点的需求,所有这些属性都要显示出来。
class VertexVM
{
Vertex _v;
Positions _positions;
//...
Point position
{
get {return _positions.getPosition(_v); }
}
// same for color etc
}
是否违反 SRP?(在我看来,是的。)有什么办法可以避免它?谢谢。