เมื่อฉันมีฟังก์ชั่นที่อาจหรืออาจไม่ได้รับพารามิเตอร์ที่แน่นอนมันจะดีกว่าหรือไม่ที่จะทำงานเกินพิกัดหรือเพื่อเพิ่ม args เพิ่มเติม
หากแต่ละคนมีอัพและดาวน์ - ฉันจะใช้แต่ละอันเมื่อใด
เมื่อฉันมีฟังก์ชั่นที่อาจหรืออาจไม่ได้รับพารามิเตอร์ที่แน่นอนมันจะดีกว่าหรือไม่ที่จะทำงานเกินพิกัดหรือเพื่อเพิ่ม args เพิ่มเติม
หากแต่ละคนมีอัพและดาวน์ - ฉันจะใช้แต่ละอันเมื่อใด
คำตอบ:
หากภาษารองรับภาษาเหล่านั้นอย่างเหมาะสม (เช่นประเภทความปลอดภัย (ถ้ามี)) ฉันต้องการข้อโต้แย้งเพิ่มเติมเนื่องจากเหตุผลต่อไปนี้:
a
, b
และc
มีความเป็นไปเหล่านี้: ไม่มีอะไร A, B, C, AB, AC, BC, abc มันเป็น2^n
ชนิดที่แตกต่างกันไม่ได้n!
สมมติว่าเป็นสถานการณ์แบบคอนสตรัคเตอร์: ฉันมักจะเลือกรูปแบบการสร้างอย่างคล่องแคล่วเพื่อป้องกันสถานการณ์ที่มีตัวเลือกมากมาย
เช่น. Ordering.natural().onResultOf(function).reverse().compound(Ordering.natural().onResultOf(function2))
เป็นตัวอย่างของการเรียกใช้อินเตอร์เฟสผู้สร้างอย่างคล่องแคล่วนำไปใช้ใน Guava
แน่นอนว่าตอนนี้คุณต้องการวัตถุแยกต่างหากเพื่อรักษาสถานะผู้สร้างของคุณ แต่คุณลดความซับซ้อนโดยรวมโดยแยกพฤติกรรมการสร้างจากพฤติกรรมของสิ่งก่อสร้าง