グラフ用のエディター (グラフ理論) をコーディングしています。頂点にこれらのプロパティが必要であると想像してみましょう:
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違反ですか?(私の意見では、そうです。)それを回避する方法はありますか?ありがとう。