0

グラフ用のエディター (グラフ理論) をコーディングしています。頂点にこれらのプロパティが必要であると想像してみましょう:

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違反ですか?(私の意見では、そうです。)それを回避する方法はありますか?ありがとう。

4

1 に答える 1