سنتطرق في موضوعنا هذا إلى مخطط الفئات بعد انتهائنا من مخطط حالات الاستخدام , لكن قبل الخوض في مناقشة هذا المخطط علينا أولا التطرق إلى بعض المفاهيم المتعلقة بهذا المخطط و بالتحديد مفهوم البرمجة الكائنية المنحى (POO: Programmation orientée objet) لأنها الأساس الذي يقوم عليه مخطط الفئات , لنبدأ على بركة الله .
1. البرمجة كائنية المنحى :
تمهيد : يحاول الإنسان دوما تغيير أسلوب حياته و تحديثه و تطويره باستمرار و ذلك طلبا للرفاهية و العيش الحسن و اختصارا للوقت الثمين الذي يعد بالنسبة للإنسان أهم شيء في حياته و البرمجة هي واحدة من المجالات التي طالها هذا التطوير و التحسين حيث مرت بثلاث مراحل مهمة أثناء تطورها :
- مرحلة البرمجة بلغة الآلة: في هذه المرحلة كان المبرمجون يكتبون برامجهم باستخدام رقمين فقط هما الصفر و الواحد و كانت البرامج التي تكتب بهذه اللغة جد معقدة و من الصعب فهمها.
- مرحلة البرمجة بلغة التجميع langage d'assemblage: أتت هذه اللغة لتزيل بعض تعقيدات لغة الآلة فهي ليست إلا اختصارا لتعليمات ست عشرية هي في الأصل صفر وواحد, ساهمت هذه اللغة في التطور السريع للغات البرمجة إلا أنها مازالت تحتوي على بعض التعقيدات
و التعليمات التي توحي للمبرمج بأنه مازال يتعامل مباشرة مع المكونات الداخلية للحاسب .
- مرحلة البرمجة الإجرائية La programmation Procédurale: مع ظهور هذا الجيل من لغات البرمجة بزغ فجر اللغات عالية المستوى و التي تشبه تعليماتها لغة الإنسان فهي تحتوي كلمات باللغة الإنجليزية كـ BEGIN و ENDو While و IF و غيرها.و بظهور هذه اللغات أصبحت البرمجة في متناول الجميع حتى الهواة من المبرمجين, في الوقت الذي كانت فيه لغات البرمجة منخفضة المستوى(لغة الآلة و لغة التجميع) مقتصرة على دوي الاختصاص. لكن هذا الجيل من لغات البرمجة كان يعتمد على الإجراءات و الدوال التي كانت تطبق عددا من التعليمات على مجموعة من المعطيات أو البيانات , و كانت البرامج التي تكتب بإحدى لغات البرمجة الإجرائية غير منظمة وتفتقر للتنسيق بل كانت عبارة عن عدد كبير من الدوال و الإجراءات المتداخلة التي يصعب أحيانا تذكرها و العمل بها . و أبسط مثال عن المكتبات البرمجية التي تعتمد على أسلوب البرمجة هذا هي مكتبة ال Win 32 API التي تُستعمل للتحكم بالويندوز مكتوبة بلغة السي و هي تتكون من عشرات الآلاف من الدوال التي يستحيل تذكرها .
- مرحلة البرمجة الكائنية : يعد مفهوم البرمجة كائنية المنحى أساس لغات البرمجة في وقتنا الحالي فجميع اللغات الحديثة تعتمد عليه , حيث أن لغة السي ++ و الجافا و السي شارب و غيرها كلها لغات كائنية المنحى.
مفهوم البرمجة كائنية المنحى جاء بعد البرمجة الإجرائية التي كانت تفتقر للتنظيم و التنسيق , من هنا انطلقت البرمجة كائنية المنحى فقد جاءت لكي تجمع بين المعالجة التي تقوم بها الإجراءات و الدوال و بين البيانات و المعطيات التي تحتاج لهذه المعالجة , فبعد أن كانت هذه الإجراءات مفصلة تماما عن البيانات (يمكن أن تقوم بتعريف بيانات برنامجك في أوله و الإجراءات في وسطه أو آخره ), أصبحت الآن في البرمجة كائنية المنحى مدمجة مع بعضها في نفس المكان الذي يدعى الكائن Objet(ربما يبدو لك هذا المصطلح جديدا و غريبا , لكنه في الحقيقة أساس البرمجة كائنية المنحى , ذلك أن مخترعي هذه البرمجة ركزوا على محاكاة الواقع للاستفادة من كونه الشيء الذي يحتك به الإنسان كثيرا ) , فأصبح لكل كائن من الكائنات التي تشكل في مجموعها برنامجك بياناته (خصائصه) و دواله أو إجراءاته الخاصة به . فلا يمكن لدالة أو إجراء ينتمي لكائن آخر بالتدخل و التعديل على بيانات هذا الكائن مباشرة , إذا فأول مفهوم من مفاهيم البرمجة كائنية المنحى هي الكائنات :
الكائن (Objet): في البرمجة كائنية المنحى يمكن اعتبار البرنامج عبارة عن مجموعة من الكائنات التي تتفاعل فيما بينها من أجل القيام بوظائف هذا البرنامج , كل كائن من هذه الكائنات يحتوي على خصائص (Propriétés)سوءا كانت هذه الخصائص عبارة عن صفات مميزة(Attributs) للكائن أو عبارة عن سلوكيات (comportement)يتصف به .
كما قلت آنفا الكائن يتميز بعدة خصائص هي :
- المُعرف أو الهوية(Identité): كل كائن يحتوي على معرف يسمح له بالتمايز عن غيره من الكائنات, فمثلا يمكن أن نميز المنتج Produit و هو كائن عن باقي المنتجات بالرمز Code و كائن السيارة برقم السيارة التسلسلي Numéro d'immatriculation.
- الصفات (Attributs) : هي عبارة عن معلومات تميز الكائن , و بعبارة برمجية هي عبارة عن متغيرات تخزن معلومات حول حالة الكائن .
- الطرائق (Les méthodes) أو العمليات Opérations : في الحقيقة في البرمجة كائنية المنحى نستعمل لفظ méthode أو opération عوضا عن fonction أو procédure ذلك أنها أصبحت كما قلنا مدمجة في الكائن.
الطرائق هي السلوكيات التي يتصف بها الكائن أو مجموعة العمليات القادر على انجازها و هي تسمح للكائن بالتفاعل مع باقي الكائنات , كما أنها مرتبطة بقوة بالصفات Attributsلأنها غالبا ما تقوم بالتعديل عليها.
الفئة La classe : الفئة هي نوع مجرد من بيانات Type de données abstrait لديها خصائص propriétés مشتركة بين جميع أفراد عائلة من الكائنات و بإمكانها إنشاء كائنات تمتلك هذه الخصائص.يمكن القول أن الفئة هي النموذج العام لنوع من الكائنات فمثلا فئة الطلبة تحتوي على صفة: الاسم , اللقب , رقم الطالب , سنة الطالب ... من هذه الفئة يمكن أن ننشأ نسخة لطالب اسمه نصرالدين , لقبه شنيقي , رقمه :1546552 , سنة دراسته أولى ماستر ..
الكبسلة Encapsulation : أو ما يعرف أيضا بالتغليف و هي تنص على إخفاء تفاصيل عملية من العمليات التي يقوم بها الكائن و إبراز ما يعرف بالواجهة فقط (Interface)و ذلك ليتسنى لمستخدم الفئة معرفة المهام التي يمكن لفئته القيام بها من دون الخوص في تفاصيلها . فمثلا إذا كانت لديك فئة تحتوي على الدوال الرياضية كالجب و جيب التمام و غيرها, أنت كمستعمل لهذه الفئة لن تضطر لمعرفة كيف يُحسب الجيب مثلا , بل يكفي أن تمرر القيمة التي تريد الاستعلام عنها فقط إلى عملية الجيب و التي بدورها تتولى عوضا عنك حساب هذه القيمة و تقدمها إليك جاهزة للاستعمال. و هنا يظهر مفهوم مبرمج الفئة و مستعمل الفئة فمبرمج الفئة سيهتم بجميع تفاصيل الفئة و يقوم ببرمجة جميع عملياتها. أما مستعمل الفئة ما عليه سوى استعمال هذه العمليات الجاهزة.
هناك فائدة أخرى للكبسلة و هي حفظ بيانات الكائن من التغيير من طرف كائن آخر مباشرة و ذلك لتجنب تداخل و تعارض البيانات. و بهذا يصبح الكائن مستقلا تماما عن بقية الكائنات و يصبح له كيان خاص , فلو أردنا إجراء تغييرات على كائن من الكائنات التي تشكل برنامجنا فنحن سنهتم بهذه التغييرات على مستوى هذا الكائن فقط من دون الخوف من تأثير هذه التغييرات , و هذا ما لم يكن في البرمجة الإجرائية التي يؤدي فيها تغيير بسيط في متغير من متغيرات البرنامج أو في دالة من دواله إلى التأثير على عدد كبير من الدوال و المتغيرات التي كانت في حالة ترابط وثيق فيما بينها .
الوراثة Héritage : الوراثة في البرمجة تشبه إلى حد كبير الوراثة في الواقع , فنقول عن فئة أنها ترث فئة أخرى هذا يعني أن جميع خصائص الفئة الموروثة ستنتقل إلى الفئة الوارثة (ما يقابلها في الطبيعة جميع ممتلكات الموروث تنتقل إلى الورثة).
كانت هذه بعض مفاهيم البرمجة الكائنية المنحى فيما يلي سنقوم بشرح مخطط الفئات و أهم خصائصه .
الجزء الثاني :مخطط الفئات





رد مع اقتباس
مواقع النشر (المفضلة)