اخر الأخبار

مزايا وعيوب البرمجة الشيئية

 

المحترف

بدأت OOP (البرمجة الكينونية) أو البرمجة الشيئية في الثمانينيات ، ولكنها على عكس الموضات العصرية ، وشخصيات ألعاب الفيديو ، لا يزال نموذج البرمجة هذا قويًا ، بعد هذه السنوات العديدة ، وقد أصبحت البرمجة الشيئية  OOP، جزءًا أساسيًا من تطوير البرمجيات ، وبفضل انتشار لغات مثل Java ، و C ++ ، لا يمكنك تطوير برامج للجوال ، إلا إذا كنت تفهم النهج الموجه نحو الكائنات ، وينطبق الشيء نفسه على تطوير الويب الجاد ، نظرًا لشعبية لغات OOP مثل Python و PHP و Ruby.

ويمكن أن يكون التعرف على فكرة البرمجة الشيئية ، أمرًا صعبًا بالنسبة لبعض محترفي تكنولوجيا المعلومات ، فقد تتساءل عن سبب احتياجك للكائنات ، حتى عندما يمكنك استخدام النهج من أعلى لأسفل ، للبرمجة المنظمة التقليدية بلغات مثل Visual Basic.

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

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

مزايا البرمجة الشيئية :

تكمن مزايا البرمجة الشيئية ، في هذا النوع من التغليف ، وإليك نظرة تفصيلية على بعض أهم مزايا البرمجة الشيئية OOP كالتالي :

1- نمطية لتسهيل استكشاف الأخطاء وإصلاحها :

حدث خطأ ما ، وليس لديك أي فكرة عن مكان البحث ، فهل المشكلة في ملف Widget ، أم في WhaleFlumper ، وهل سيكون عليك المرور عبر ملف (sewage.c) ، آمل أن تكون علقت على التعليمات البرمجية الخاصة بك.

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

2- إعادة استخدام الكود من خلال الميراث :

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

وهذا هو المكان الذي توفر فيه تقنية الوراثة الوقت : قم بإنشاء فئة عامة واحدة (سيارة) ، ثم حدد الفئات الفرعية (Racecar و Limousine) التي ترث سمات الصف العام ، وبالطبع ، لا تزال سيارات الليموزين و Racecar تتمتع بخصائصها ووظائفها الفريدة.

فإذا كان كائن Racecar يحتاج إلى طريقة لـ (  fireAfterBurners) وكان كائن Limousine يتطلب سائقًا ، يمكن لكل فئة تنفيذ وظائف منفصلة لنفسها فقط ، ومع ذلك ، لأن كلا الفئتين ترثان الجوانب الأساسية من فئة السيارة ، على سبيل المثال طرق (محرك الأقراص) أو (fillUpGas) ، يمكن للفئات الموروثة ببساطة ، إعادة استخدام التعليمات البرمجية الموجودة ، بدلاً من كتابة هذه الوظائف مرة أخرى.

ماذا لو كنت تريد إجراء تغيير على جميع كائنات السيارة ، بغض النظر عن النوع ، هذه ميزة أخرى لنهج البرمجة الشيئية OOp ، ما عليك سوى إجراء تغيير على فئة سيارتك ، وسوف ترث جميع كائنات السيارة ببساطة الرمز الجديد.

3- المرونة من خلال تعدد الأشكال :

استنادًا إلى هذا المثال ، تحتاج الآن إلى عدد قليل من برامج التشغيل ، أو الوظائف ، مثل (driveCar) ، و (driveRaceCar) ، و (DriveLimousine) ، تشترك RaceCarDrivers بعض السمات مع (LimousineDrivers)  ، ولكن أشياء أخرى ، مثل RaceHelmets و BeverageSponsorships ، هي فريدة من نوعها.

هذا هو المكان الذي يأتي فيه تعدد الأشكال الحلو للبرمجة الموجهة للكائنات ، ونظرًا لأن وظيفة واحدة ، يمكنها تشكيل التغيير للتكيف مع أي فئة تكون فيها ، فيمكنك إنشاء وظيفة واحدة في فئة السيارة الأصلية ، وتسمى (drive) ، وليس (driveCar) أو (driveRaceCar) ، ولكن فقط (drive).

وستعمل هذه الوظيفة مع RaceCarDriver و LimousineDriver وما إلى ذلك ، وفي الواقع ، يمكن أن يكون لديك (raceCar.drive (myRaceCarDriver ، أو (limo.drive (myChauffeur.

4- حل المشكلات بشكل فعال :

تتمتع لغة مثل C بإرث مذهل في تاريخ البرمجة ، ولكن كتابة البرامج بلغة من أعلى إلى أسفل ، تشبه لعب Jenga أثناء ارتداء القفازات ، كلما ازداد تعقيدها ، زادت فرصة انهيارها ، وفي الوقت نفسه ، يمكن أن تكون كتابة برنامج على غرار وظيفي بلغة مثل هاسكل ، أو ML عمل روتيني.

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

وهذا لا يعني أن البرمجة الشيئية OOP هو الطريق الحقيقي الوحيد ، ومع ذلك  فإن مزايا البرمجة الشيئية عديدة ، خاصة عندما تحتاج إلى حل تحديات البرمجة المعقدة ، وتريد إضافة أدوات التعليمات البرمجية إلى مجموعة المهارات الخاصة بك ، فإن البرمجة الشيئية OOP هو صديقك ، ولديه عمر أطول ، وفائدة أكبر بكثير من Pac-Man أو parachute pants.

عيوب البرمجة الشيئية :

على الرغم من أن الجودة تعتمد على تجربة الفرق ، فإن البرمجة الشيئية تميل إلى أن تنتج برامج عالية الجودة ، وتتضمن بعض عيوب البرمجة الشيئية التالي :

1- منحنى التعلم الحاد :

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

2- حجم برنامج أكبر :

حجم برنامج أكبر ، حيث تتضمن البرامج الموجهة للكائنات ، عادة أسطرًا من التعليمات البرمجية أكثر من البرامج الإجرائية.

3- البرامج البطيئة :

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

4- غير مناسب لجميع أنواع المشاكل :

هناك مشاكل تلائم أسلوب البرمجة الوظيفية ، أو أسلوب البرمجة المنطقية ، أو أسلوب البرمجة المستند إلى الإجراء ، ولن ينتج عن تطبيق البرمجة الشيئية ، في هذه المواقف برامج فعالة.

ليست هناك تعليقات