ฉันกำลังเขียนใบสมัครและฉันมาถึงจุดนี้:
private void SomeMethod()
{
    if (Settings.GiveApples)
    {
        GiveApples();
    }
    if (Settings.GiveBananas)
    {
        GiveBananas();
    }
}
private void GiveApples()
{
    ...
}
private void GiveBananas()
{
    ...
}
นี่ดูตรงไปตรงมาสวย มีเงื่อนไขบางอย่างและหากเป็นจริงวิธีการที่จะถูกเรียก อย่างไรก็ตามฉันคิดว่ามันค่อนข้างดีกว่าที่จะทำสิ่งนี้:
private void SomeMethod()
{
    GiveApples();
    GiveBananas();
}
private void GiveApples()
{
    if (!Settings.GiveApples)
    {
        return;
    }
    ...
}
private void GiveBananas()
{
    if (!Settings.GiveBananas)
    {
        return;
    }
    ...
}
ในกรณีที่สองแต่ละวิธีจะป้องกันตัวเองดังนั้นแม้ว่าจะมีวิธีใดวิธีหนึ่งGiveApplesหรือGiveBananasถูกเรียกจากภายนอกSomeMethodพวกเขาจะถูกเรียกใช้งานก็ต่อเมื่อมีการตั้งค่าสถานะที่ถูกต้องในการตั้งค่า
นี่เป็นสิ่งที่ฉันควรพิจารณาว่าเป็นปัญหาหรือไม่
ในบริบทปัจจุบันของฉันเป็นไปได้ยากมากที่จะเรียกวิธีการทั้งสองจากภายนอกวิธีนี้ แต่ไม่มีใครสามารถรับประกันได้ว่า