
(
المصدر )
أريد أن أساهم بـ "5 كوبيل" في النزاع المستمر بين المعارضين ومؤيدي منظمة التحرير الفلسطينية. من المنشورات الحديثة حول هذا الموضوع ، يمكن للمرء أن يلاحظ عنوانًا سلبيًا ساطعًا
"كلما نسيتم OOP بشكل أفضل ، كان ذلك أفضل لك وللبرامج الخاصة بك" ، و
"توقف عن الجدال حول البرمجة الوظيفية و OOP" المحبة للسلام
، و
"البرمجة الموجهة للكائنات بلغات الرسوم" بشكل إيجابي إلى حد ما.
لكن فكرة هذا المقال دفعتني إلى
التعليق على مقال آخر:
مثال رائع على OOP هو مجرد فظيعة. ينفذ نظام السمات قضيتك تمامًا ، ولا يتطلب إطلاقًا الإجابة على السؤال الوجودي الخاص ببرمجة الكائن - "ما هو الكائن؟". [...] نسيان OOP ، كان استعارة ناجحة لواجهة المستخدم الرسومية ، والتي حاولوا رفعها إلى وضع الدين.
في رأيي ، يعد هذا تعليقًا نموذجيًا موضحًا للغاية ، حيث لا يتم انتقاد نهج OO (حتى OOP في واجهة المستخدم الرسومية مستحقة) ، ولكن الخرافات التي نشأت حول OOP. وهكذا ، في رأيي ، الكل على حق: كلا المؤيدين عندما يشيران إلى راحة OOP ، على سبيل المثال ، عند برمجة واجهة المستخدم الرسومية ، والمعارضين عندما يكونون ساخطين من رفع OOP في حالة رصاصة فضية ، سلاح مطلق.
تجدر الإشارة إلى أنه في كل OO PL يوجد نهج OO مختلف ، وأحيانًا شديد الاختلاف ، وأحيانًا لا يختلف كثيرًا عن أساليب OO الأخرى. سأنتقل من النهج المعتدل والبسيط لـ OO Pascal ، الذي تم وضعه بالفعل في Turbo Pascal 5.5 وأخيراً تم تشكيله لـ Delphi 7 (يمكننا ملاحظة اللغات المفاهيمية للمصنعين الآخرين ، على سبيل المثال ، Think Pascal for MacOS). هناك مبادئ أساسية في هذا النهج OO: التغليف ، والميراث (بسيط) ، تعدد الأشكال. والقيود الكبيرة: على سبيل المثال ، ليس هناك أساسا
ميراث متعددة معقدة للغاية.
كما كتبت بالفعل في
التعليق على المقالة المذكورة أعلاه ، فإن الانتقال من الكلاسيكية باسكال إلى OO باسكال بدا ، في رأيي ، واضحة جدا ومبررة:
أبسط تغليف موجود بالفعل في السجلات. علاوة على ذلك ، فإن مفهوم الميراث يأتي في مثل هذه الأمثلة البسيطة:
type
TCoord = record //
x, y : integer
end;
TRect = record //
leftTop, RBot : TCoord;
end;
«record» «class» ( ), «» .
— , , GUI. « „ ?“». — , — — . . , , ! ( ). — , , . — . , , , , , — , . , . , — . , . ? — : . , . .:
.., .., .. . .
. ., . . 3-, . .: , 2007, . 3 , , . , . . , . : , . , - ;)
,
,
,
., , , . , . — . — , , :
[...] , .. IDE GUI, .
, , , . : « — ». , - , , , . : - . , . (
, , : , , , .) — , , , , .