เป้าหมายของฉันคือการกำหนดสัญญาระหว่างชั้นเรียน
ฉันชอบการพิมพ์เป็ดและทั้งหมด แต่ฉันต้องการกำหนดอินเทอร์เฟซระหว่างเลเยอร์ต่าง ๆ ของแอปพลิเคชันของฉันเพื่อกำหนดอย่างชัดเจนซึ่งเป็นวิธีการโทรจากภายนอกและเป็นวิธีการเสริมที่เลเยอร์อื่นไม่ควรใช้ .
ตัวอย่างเช่นใน Java ฉันสามารถกำหนดอินเตอร์เฟส Persistor ด้วยวิธีการเช่น get () และ save () จากนั้นกำหนดคลาส JdbcPersistor ด้วยวิธีการทั้งหมดที่ฉันต้องการเพื่อคงอยู่ในฐานข้อมูล และบางที RestPersistor อีกอันที่มีวิธีการอื่นสำหรับการบันทึกใน restserver ระยะไกล
ฉันไม่ได้ขออินเทอร์เฟซใน Ruby เพียงเพื่อให้รู้ว่ามีวิธีที่เป็นระเบียบจะทำให้ความแตกต่างนี้หรือไม่ ฉันชอบทับทิม แต่ฉันทำงานเฉพาะในโครงการขนาดเล็กเท่านั้น