الفصول النهائية في PHP و Java ولغات أخرى

استخدم الفصول النهائية أو لا تستخدم الفصول النهائية؟ هذا هو السؤال. وأيضًا متى وكيف يتم القيام بذلك بشكل صحيح.







لماذا استخدام الفصول النهائية



تصغير مجال الرؤية



عندما ترى فئة ببادئة نهائية ، فإنك تدرك أنه لا يمكن تمديد هذه الفئة بواسطة أي فئة أخرى ، مما لا يجعلها أكثر قابلية للقراءة فحسب ، بل تتيح لك أيضًا التأكد من أن نطاق المنطق يقتصر على تلك الفئة المعينة.



تشجيع نهج التكوين فوق الميراث 



يقول المبدأ المفتوح / المغلق: يجب أن يكون الفصل مفتوحًا للتمديد ، ولكنه مغلق للتغيير.



إذا قررت لأي سبب (فهم جيد للسبب نفسه) استخدام الميراث ، فما عليك سوى إزالة الكلمة الرئيسية النهائية وتكون قد انتهيت.



إذا لم تتمكن من تمديد الفصل "افتراضيًا" (لأنه نهائي) ، فأنت تساعد نفسك بالتفكير بشكل أساسي في استخدام التكوين بدلاً من الميراث.



لماذا ليس هذا الفصل نهائي؟



إذا كنا نهدف إلى التكوين وليس الميراث ، فعلينا أن نحاول تجنب الميراث قدر الإمكان واستخدامه فقط عند الضرورة الحقيقية. غالبًا ما يساء استخدام وراثة OOP.



أوهام



عندما درسنا OOP لأول مرة ، قدمنا ​​مثالًا كلاسيكيًا للوراثة. ومع ذلك ، عندما أنشأ آلان كاي Smalltalk ، لم يكن الميراث مفهومه الرئيسي. كان المفهوم الرئيسي هو المراسلة ، أي أنه يمكنك إرسال رسائل إلى الكائنات ، وتقوم بتغليف البيانات والمنطق. يمكنك تغيير سلوكهم باستخدام كائنات مختلفة ، والتي هي في الواقع تكوين. لكن في النهاية ، فإن مفهوم الميراث شائع جدًا لدرجة أنه يطغى في النهاية على التكوين.



فوائد استخدام الفصول النهائية



  • . .
  • . , .
  • . , .
  • . , . .
  • . .
  • . , , .
  • . .




  • , , .
  • , , . , . , , .


[ ]



  • .
  • .
  • استخدم التكوين (عبر DI من خلال مُنشئ الفصل) للحفاظ على الأشياء معًا وتقليل التعقيد.


المجموع الفرعي: الواجهات -> الفصول النهائية -> التركيب



All Articles