อย่างที่คนอื่นพูดแน่นอนมันยังคงเป็นฟังก์ชั่นที่บริสุทธิ์
อย่างไรก็ตามเรามาพูดถึงปัญหาการออกแบบกันเถอะ คุณมีสิทธิ์ที่จะลองทำบางสิ่งเพื่อรักษารหัส DRY ไว้โดยใส่ค่าในที่เดียวเท่านั้น นอกจากนี้สิ่งที่ฉันคิดว่าควรคำนึงถึงก็คือระดับของข้อต่อที่เหมาะสม
การใช้ฟังก์ชั่นจะช่วยให้คุณมีความยืดหยุ่นมากขึ้นในการเปลี่ยนการใช้งานซึ่งกล่าวได้ว่าวิธีการทำงานนั้นให้การเชื่อมต่อที่แน่นกว่าตัวแปรทั่วโลก
คำถามคือว่าเราต้องการมันหรือไม่?
หากผู้บริโภคและผู้ให้บริการอยู่ในโมดูลเดียวกันและผู้ให้บริการเป็นส่วนตัวของโมดูลมันก็ยากที่จะยืนยันว่าการมีเพศสัมพันธ์แบบหลวม ๆ ในระดับนี้เป็นสิ่งจำเป็นเนื่องจากข้อเท็จจริงที่ว่าหากผู้ให้บริการต้องการอัพเกรดจากตัวแปรส่วนตัวเป็น วิธีการส่วนตัวการปรับโครงสร้างภายในโมดูลอย่างง่ายสามารถนำไปใช้กับผู้บริโภคได้ในเวลาเดียวกัน การใช้วิธีการ / ฟังก์ชั่นก่อนที่คุณจะต้องการจริงๆอาจตกอยู่ภายใต้ YAGNI
แม้ว่าผู้บริโภคและผู้ให้บริการจะอยู่ในโมดูลที่แตกต่างกัน แต่โมดูลนั้นเป็นรุ่นด้วยกัน (ตัวอย่างเช่นคุณใช้ minifyer เพื่อให้โมดูลของผู้บริโภคและผู้ให้บริการอยู่ในไฟล์เดียวกัน) YAGNI อาจนำไปใช้
ในทางตรงกันข้ามถ้าเช่นผู้ผลิตอยู่ในห้องสมุดหรือแพคเกจ API หรือโมดูลที่เป็นรุ่นแยกต่างหากจากผู้บริโภคจากนั้นใช้ฟังก์ชั่นอาจจะเหมาะสม ในกรณีนี้เราควรดู API ที่ยืนยาวและหลักการเช่น OCP
(ในบันทึกอื่นถ้ารหัสของคุณมีขนาดที่สำคัญใด ๆ ฉันจะสนับสนุนให้ใช้โมดูลที่มีฟิลด์และวิธีการมากกว่าตัวแปรและฟังก์ชั่นทั่วโลก)