ข้อใดของการออกแบบเหล่านี้ดีกว่า ข้อดีและข้อเสียของแต่ละข้อคืออะไร? คุณจะใช้อันไหน ข้อเสนอแนะอื่น ๆ ของวิธีการจัดการกับวิธีการที่ชอบจะได้รับการชื่นชม
มีเหตุผลที่จะสมมติว่า 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.
}