Những thiết kế nào là tốt hơn? Những ưu và nhược điểm của mỗi là gì? Bạn sẽ sử dụng cái nào? Bất kỳ đề xuất nào khác về cách đối phó với các phương pháp như được đánh giá cao.
Thật hợp lý khi giả định rằng Draw () là nơi duy nhất mà các phương thức vẽ khác được gọi từ đó. Điều này cần mở rộng ra nhiều thuộc tính Draw * và Show * hơn, không chỉ ba thuộc tính được hiển thị ở đây.
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.
}
Hoặc là
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.
}