البرمجة كائنية التوجه , المرحلة المتقدمة من معمارية البرمجة

البرمجة كائنية التوجه , المرحلة المتقدمة من معمارية البرمجة

شارك هذا المقال:



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

عندما تتكلم عن برمجة غرضية التوجه فأنت تقوم بتقسيم برنامجك إلى عدة برامج صغيرة كل منها يمكن إدارته وقابل لإعادة الاستخدام وكل منها له هوية وبيانات خاصة به والطريقة التي سيتواصل بها مع البرامج الصغيرة الأخرى..

بطريقة أخرى أنت تقوم بنتظيم برنامجك وتقسيمه باستخدام هياكل بيانات يطلق عليها "الكائنات" وتقوم بإسناد خصائص وطرائق لكل كائن فما هو الكائن؟

كل ماحولك عبارة عن كائن وقد يكون الكائن مرئياً بالنسبة لك مثل السيارة، الطائرة، الضوء... وقد يكون شيئاً لاتستطيع لمسه مثل الوقت، الحساب البنكي....

كل كائن له خصائص تميزه مثلاً السيارة لها وزن ولون وله سلوك معين مثلاً الحساب البنكي يملك العمليات (سحب- إيداع...) ولكي نستطيع التعامل مع الكائنات يجب أن نعرّف صف(فئة) خاص لكل نوع من الكائنات.

إذاً الصف هو المكان الذي نعرّف فيه السلوك والخصائص المشتركة لمجموعة الكائنات.

المبادئ الأساسية للبرمجة غرضية التوجه:

أولاً: التغليف:

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

ثانياً: الوراثة:

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

وطبعاً الوراثة لا تؤثر على الصف الأب ويسمى الصف الذي يرثه الصف الفرعي أو الصف الابن.

ثالثاً: تعددية الأشكال:

أي أن الكائن يكون قادراً على أن يأخذ عدة أشكال، تعتمد هذه الميزة على الوراثة حيث يتم في الكائن الأب تعريف طريقة ما يرثها عدة كائنات ولكن كل منها يتفذها بالطريقة التي تناسبه

مثلاً إذا كان لدينا للكائن الأب الذي هو shape طريقة تسمى area() ولدينا كائن rectangle يرثه وأيضاً كائن square ... إن هذان الكائنان يأخذان خصائص الطول والعرض من الأب ولكن كل منهما يقوم بتحقيق الطريقة area بالشكل الذي يناسبه

إن هذا النمط المتقدم من البرمجة قد ساعد على توفير الوقت للمبرمج بشكل كبير من خلال الاستفادة من الأكواد دون أن يضطر لإعادة كتابتها عن طريق الميزات التي توفرها...

 



ما رأيك في هذا المقال؟

كيف تقييم نوعية المحتوى في نقرة؟

5 4 3 2 1