Какой из этих дизайнов лучше? Каковы плюсы и минусы каждого? Какой из них вы бы использовали? Любые другие предложения о том, как иметь дело с методами, как это приветствуется.
Разумно предположить, что Draw () - единственное место, из которого вызываются другие методы рисования. Это необходимо расширить до многих других методов 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.
}