ฉันมีคำถามสองส่วน
ปฏิบัติที่ดีที่สุด
- ฉันมีอัลกอริทึมที่ดำเนินการบางอย่างกับโครงสร้างข้อมูลโดยใช้อินเทอร์เฟซสาธารณะ
- ปัจจุบันเป็นโมดูลที่มีวิธีการแบบคงที่จำนวนมากซึ่งเป็นแบบส่วนตัวทั้งหมดยกเว้นวิธีการเชื่อมต่อสาธารณะเพียงวิธีเดียว
- มีตัวแปรอินสแตนซ์หนึ่งตัวที่ต้องใช้ร่วมกันระหว่างวิธีการทั้งหมด
นี่คือตัวเลือกที่ฉันเห็นซึ่งดีที่สุด:
- โมดูลที่มีวิธีการแบบคงที่ ('โมดูล' ในทับทิม)
- คลาสด้วยวิธีการคงที่
- โมดูลMixinสำหรับรวมไว้ในโครงสร้างข้อมูล
- Refactorออกเป็นส่วนหนึ่งของขั้นตอนวิธีที่ปรับเปลี่ยนโครงสร้างข้อมูล (เล็กมาก) และให้ที่ mixin ที่เรียกวิธีการคงที่ของโมดูลอัลกอริทึมที่
ส่วนทางเทคนิค
มีวิธีใดในการสร้างเมธอด Private Moduleหรือไม่?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
private
ในนั้นดูเหมือนจะไม่ได้มีผลกระทบใด ๆก็ยังสามารถเรียกThing.priv
โดยไม่มีปัญหา