Duck typing هو مبدأ يتم فيه تحديد مدى ملاءمة كائن بناءً على ما هي الدوال (methods) التي يستجيب لها، وليس فئته أو نوعه — "إذا كان يمشي مثل البطة ويصيح مثل البطة، فهو بطة." في Ruby، تهتم بأن الكائن يستطيع القيام بـ شيء ما (لديه الدالة)، وليس ما نوعه. هذا يتيح كوداً مرناً وشاملاً الأشكال (polymorphic) دون الحاجة للوراثة أو الواجهات.
المبدأ: السلوك على حساب النوع
()
duck.quack
=
=
make_it_quack(.new)
make_it_quack(.new)
