นี่เป็นอาการง่อยเล็กน้อย แต่ทุกครั้งที่ฉันต้องเขียนโค้ดแบบนี้การทำซ้ำจะทำให้ฉันรำคาญใจ แต่ฉันไม่แน่ใจว่าวิธีแก้ปัญหาใด ๆ จะไม่แย่ลง
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- มีชื่อสำหรับตรรกะชนิดนี้หรือไม่?
- ฉันเป็น OCD ด้วยหรือเปล่า
ฉันเปิดให้คำแนะนำรหัสชั่วร้ายเพียงเพื่อความอยากรู้อยากเห็นของ ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
ระดับนามธรรมที่สูงขึ้นคือ รายละเอียดเล็ก ๆ น้อย ๆ ที่ทำให้แน่ใจว่าคุณมีข้อมูลสำหรับ DoSomething () อยู่ในระดับที่เป็นนามธรรมต่ำกว่าดังนั้นจึงควรอยู่ในฟังก์ชันที่แตกต่างกัน ฟังก์ชั่นนี้จะมีชื่อในระดับที่เป็นนามธรรมสูงกว่าและการใช้งานจะมีระดับต่ำ คำตอบที่ดีด้านล่างแก้ไขปัญหานี้
DefaultAction
สายละเมิดหลักการ DRY