تعرف على مفهوم البرمجة كائنية التوجه
ما هي البرمجة غرضية التوجه وما أهم مفاهيمها؟
في البرمجة الشيئية أو البرمجة كائنية التوجه أو البرمجة غرضية التوجه سمها ما شئت، توجد 4 مفاهيم أساسية عليك فهمها من أجل كتابة التعليمات البرمجية بشكل صحيح.
هذه المفاهيم هي:
- الوراثة Inheritance
- التغليف Encapsulation
- التجريد Abstraction
- تعدد الأشكال Polymorphism
في مقال اليوم سأشرح لكم هذه المصطلحات وأوضح لكم كيف يمكنكم استخدامها في تطوير برامج احترافية عالية الجودة.
1. ما هو مفهوم الوراثة في البرمجة غرضية التوجه؟
الوراثة هي قدرة صفّ ما على وراثة سمات وطرق صفّ آخر وهو مبدأ هام لأنه يسمح لك بإنشاء صفوف فرعية هي إصدارات أكثر تخصصا من الصف الأساسي أو الصف الأب.
على سبيل المثال، يمكن أن يكون لديك صف أب يعبر عن وسية نقل وله صفان أبناء هما السيارة والشاحنة.
قد يحتوي صف السيارة على سمات عامة ودوال مشتركة بين جميع المركبات، مثل عدد العجلات واللون. عندئذٍ سيكون لكل من الفئات الفرعية للسيارة والشاحنة سماتها وطرقها الفريدة مثل عدد الأبواب وحجم المحرك.
الوراثة مبدأ هام للغاية في البرمجة كائنية التوجه (OOP) فمن خلاله يمكنك إعادة استخدام الكود. هذا يعني أنه يمكنك كتابة التعليمات البرمجية مرة واحدة ثم استخدامها في أماكن متعددة مما يجعل الكود الخاص بك أكثر كفاءة وقابلية للصيانة.
2. ما هو مفهوم التغليف في البرمجة غرضية التوجه؟
يؤدي تغليف البيانات في لغات البرمجة كائنية التوجه إلى تجميع البيانات والطرق التي تعمل على تلك البيانات في وحدة واحدة. غالبًا ما تستخدم العديد من لغات البرمجة التغليف في شكل صفوف Classes.
يعد التغليف أحد المبادئ الأساسية لـ OOP (البرمجة كائنية التوجه). وهو يشير إلى تجميع البيانات والطرق التي تعمل على تلك البيانات. يستخدم التغليف لإخفاء قيم أو حالة كائنات البيانات المنظمة داخل الصف، لمنع الوصول المباشر إليها من قبل أطراف غير مصرح لهم بذلك.
مثال على التغليف في جافا
التغليف هو عملية التفاف التعليمات البرمجية والبيانات معًا في وحدة واحدة، يمكننا استخدام أساليب setter و getter لتعيين البيانات والحصول عليها. الصف Java Bean هي مثيل لصف مغلف بالكامل.
مثال على التغليف في C ++
هو مفهوم برمجة موجه للكائنات يربط البيانات والوظائف التي تتعامل مع البيانات، ويحميها من كل من التدخل الخارجي وإساءة الاستخدام. أدى تغليف البيانات إلى ظهور مفهوم OOP المهم لإخفاء البيانات.
الميزة الرئيسية لاستخدام التغليف هي أمان البيانات حيث أن التغليف يحمي الكائن من الوصول غير المرغوب فيه ويسمح بالوصول إلى مستوى معين من التفاصيل حول هذا الكائن حيث يتم إخفاء متغيرات الصف عن الصفوف الأخرى ويكون التركيز على الطريقة أو الدالة بدلاً من البيانات.
3. ما هو مفهوم التجريد Abstraction في OOP؟
التجريد هو أحد ركائز البرمجة كائنية التوجه (OOP). يعني النظر إلى كيان من وجهة نظر مجردة في النظام البرمجي. فهو يقوم بتجريد الكيان وإزالة التفاصيل غير الضرورية ونركز فقط على الجوانب الأساسية له.
هدفه الرئيسي هو تخفيف التعقيد عن طريق إخفاء التفاصيل غير الضرورية وهو مفهوم عام جدًا ولا يقتصر على البرمجة كائنية التوجه ويمكنك أن تجده في كل مكان في العالم الحقيقي.
الغرض الرئيسي من التجريد في البرمجة هو إخفاء التفاصيل غير الضرورية عن المستخدمين. يقوم التجريد بتحديد البيانات من مجموعة كبيرة لإظهار التفاصيل ذات الصلة بالكائن للمستخدم فقط. يساعد في تقليل تعقيد البرمجة والجهود هذا هو أحد أهم مفاهيم OOPs.
يمكن من خلال التجريد تنفيذ عملية إخفاء تفاصيل كائن ما بحيث يمكن استخدامه دون فهم كيفية عمله. يتيح لك ذلك إنشاء كود سهل الاستخدام والصيانة.
على سبيل المثال يمكن أن يكون لديك فئة تسمى وسيلة نقل لها طرق عامة هي مثل القيادة والتوقف. يتم إخفاء تفاصيل كيفية عمل هذه الطرق عن المستخدم، بحيث يمكنهم ببساطة استدعاء الطرق والثقة في أنها ستعمل كما هو متوقع.
إذًا: التجريد مهم لأنه يسمح لك بإنشاء كود سهل الاستخدام والفهم. يسمح التجريد للمستخدم باستخدام الكود الخاص بك دون الحاجة إلى معرفة تفاصيل كيفية عمله.
4.ما هو مفهوم تعدد الأشكال في البرمجة غرضية التوجه؟
تعدد الأشكال هو قدرة الكائن على أن يتخذ أشكالًا متعددة. هذا مفيد لأنه يسمح لك بإنشاء كود أكثر مرونة وقابلية للتكيف.
على سبيل المثال، يمكن أن يكون لديك صف برمجي يسمى شكل هندسي مع صفوف فرعية مثل الدائرة والمستطيل. قد يحتوي الصف الخاص بالشكل على طرق عامة مثل getArea و getPerimeter. عندها سيكون لكل من الصفين الأبناء الفرعيين الدائرة والمستطيل تنفيذ فريد خاص به لهذه الطرق.
تعدد الأشكال مهم لأنه يسمح لك بكتابة كود أكثر مرونة وقابلية للتكيف. يتيح لك تعدد الأشكال كتابة التعليمات البرمجية التي يمكن استخدامها مع أنواع متعددة من الكائنات.
باختصار: وراثة طريقة من صف أب وتغيير تنفيذها في الصف الابن.
ما الفرق بين التجاوز أو التحميل الزائد Overriding وتعدد الأشكال
يمكن تحقيق تعدد الأشكال من خلال التجاوز.
باختصار، يشير تعدد الأشكال إلى قدرة الكائن على توفير سلوكيات مختلفة اعتمادًا على موقعه في التسلسل الهرمي للصفوف البرمجية.
تجاوز الطريقة هي عندما يتم إعادة تعريف طريقة محددة في صف أو واجهة بواسطة إحدى الصفوف الفرعية، وبالتالي تعديل / استبدال السلوك الذي يوفره الصف الأب. يتم اتخاذ قرار الاستدعاء ديناميكيًا في وقت التشغيل اعتمادًا على الكائن الذي يتم استدعاء الطريقة منه. لاحظ أن توقيع الطريقة يظل كما هو عند التجاوز.