これらのデザインのどれが優れていますか?それぞれの長所と短所は何ですか?どちらを使用しますか?のようなメソッドを処理する方法に関する他の提案を歓迎します。
Draw()が他の描画メソッドが呼び出される唯一の場所であると仮定するのは合理的です。これは、ここに示した3つだけでなく、さらに多くのDraw *メソッドとShow *プロパティに拡張する必要があります。
public void Draw()
{
if (ShowAxis)
{
DrawAxis();
}
if (ShowLegend)
{
DrawLegend();
}
if (ShowPoints && Points.Count > 0)
{
DrawPoints();
}
}
private void DrawAxis()
{
// Draw things.
}
private void DrawLegend()
{
// Draw things.
}
private void DrawPoints()
{
// Draw things.
}
または
public void Draw()
{
DrawAxis();
DrawLegend();
DrawPoints();
}
private void DrawAxis()
{
if (!ShowAxis)
{
return;
}
// Draw things.
}
private void DrawLegend()
{
if (!ShowLegend)
{
return;
}
// Draw things.
}
private void DrawPoints()
{
if (!ShowPoints || Points.Count <= 0))
{
return;
}
// Draw things.
}