Hassan Eldeeb نشر 4 فبراير 2022 أرسل تقرير نشر 4 فبراير 2022 (معدل) ما الفرق بين ال functional programming و ال object oriented programming تم التعديل في 5 فبراير 2022 بواسطة Hassan Hedr توضيح العنوان 1 اقتباس
1 Hassan Hedr نشر 5 فبراير 2022 أرسل تقرير نشر 5 فبراير 2022 البرمجة الوظيفية Functional Programming العنصر الأساسي فيها هو التابع، يستقبل البيانات ويعالجا وقد يعيد قيمة ما نتيجة المعالجة العنصر الثاني فيها هو البيانات، فهي تنتقل من تابع إلى آخر بحسب واجهة متفق عليها بين التوابع (مثلا نص، مصفوفة، أعداد، بنية معطيات محددة) تمتلك التوابع خصائص معينة، مثل التركيب بينها لإنشاء تابع جديد، التوابع العليا وهي التي تولد توابع تعمل بطرق مختلفة للقراءة أكثر راجع المقال التالي: البرمجة كائنية التوجه Object Oriented Programming العنصر الأساسي فيها هو الكائن، وظيفته تغليف حالة ما وتوفير واجهة للتعامل مع تلك الحالة العنصر الثاني فيها هو الرسائل التي ترسل بين الكائنات، فكل كائن يمكنه استدعاء تابع من كائن آخر، فتتولد شبكة من الكائنات المرتبطة ببعضها ويمكنها العمل معًا لغرض ما يتم توليد الكائنات من خلال الصنف Class، فهو يعد معمل لتلك لكائنات للأصناف خصائص مثل الوراثة وهي إعادة تعريف بعض التوابع والمتغيرات من صنف ضمن صنف آخر الخصائص الثلاثة الرئيسية لهذا النوع من البرمجة هي : التغليف Encapsulation: يمكن للكائن تغليف حالة ما داخله، أي لا يمكن الوصول إليها ولا التعامل معها إلا عن طريق الكائن تعدد الأشكال Polymorphism: يمكن للكائن أن يعامل بأكثر من شكل، حيث يمكنه تضمين أكثر من حزمة من التوابع، ويمرر للكائنات الأخرى التي تحتاج لحزمة ما من تلك التوابع الوراثة Inheritence: يمكن للصنف وراثة توصيف وتضمين صنف آخر، أي إعادة تعريف توابع بتضميناتها (أو فقط شكلها) ضمنه يمكنك القراءة أكثر في المقال التالي: اقتباس
0 شرف الدين حفني نشر 4 فبراير 2022 أرسل تقرير نشر 4 فبراير 2022 oop كل شئ في الoop عبارة عن objects حيث يجب وجود class وتأتي منه objects وكل صنف يمكنه الوراثة من صنف أخر بحيث يأخذ منه خصائصه والدوال الخاصة به كل كائن يحتوي على خصائص attributes و bhafiors عبارة عن دوال الدوال تنقسم إلى نوعين pure functions تقوم بإستقبال مُعطيات وتقوم بإخراج معطيات من دون التعديل على خصائص على الكائن, بينما الدوال الغير نقية non-pure functions تقوم بالتعديل على خصائص الكائنات مثال على شفرة برمجية للoop public class Person { private String name; public String getName() { return name; } public void setName(String newName) { this.name = newName; } } هنا نلاحظ وجود الدالة getName التي تقوم بإرجاع إسم الشخص, والدالة setName التي هي دالة غير نقية حيث تقوم بالتعديل على خاصية الإسم لدى الشخص functional programming الدوال في الfunctional programming كلها نقية حيث تقوم بإستقبال المعطيات وإخراج ناتج دون وجود side effects أي أنها لا تقوم بالتعديل أو تغيير أحد القيم الموجودة لدينا تمتاز أنها declarative أي أن نقوم بمعالجة البيانات عبر مجموعة من الدوال الجاهزة بتجميع تلك الدوال معًا دون الإحتياج إلى كتابة الشفرة الخاصة بكل دالة منهم List<Integer> numbers = Arrays.asList(1,2,3,4,5); numbers.forEach(number -> System.out.print( number + " ")); كما تلاحظ في أننا هنا نقوم فقط بأخذ مجموعة من القيم الموجودة في مصفوفة ونقوم بالمرور عليها وطباعة العناصر دون أن نقوم بالتغيير في القيم الأصلية وكل سطر في البرنامج عبارة عن دالة 1 اقتباس
0 Salah Eddin Beriani2 نشر 4 فبراير 2022 أرسل تقرير نشر 4 فبراير 2022 كلاهما يمثل paradigm اي أسلوب أو "طريقة" من البرمجة و تختلف نماذج البرمجة عن بعضها البعض بناءً على الميزات والأسلوب الذي تدعمه فهناك العديد من الميزات التي تحدد نموذج البرمجة مثل الوحدات النمطية أو الكائنات أو المقاطعات أو الأحداث و لكل نموذج برمجة ميزته الخاصة لذلك من الأفضل معرفة مكان استخدامه قبل استخدامه و تعد اللغات الموجهة للكائنات oop جيدة عندما يكون لديك مجموعة ثابتة من العمليات على الأشياء ومع تطور التعليمات البرمجية الخاصة بك فإنك تقوم في المقام الأول بإضافة أشياء جديدة يمكن تحقيق ذلك عن طريق إضافة فئات ضمن الفئات القديمة. اما البرمجة الوظيفية functional programming فهي جيدة عندما يكون لديك مجموعة ثابتة من الأشياء ومع تطور شفرتك فإنك تضيف بشكل أساسي عمليات جديدة على الأشياء الموجودة يمكن تحقيق ذلك عن طريق إضافة وظائف جديدة تحسب مع أنواع البيانات الموجودة من الممكن أيضًا استخدام كل من نماذج البرمجة وفقًا لاحتياجاتنا الخاصة نظرًا لأن لدينا لغات مثل python و java وما إلى ذلك تدعم كلا من المفاهيم الموجهة للكائنات oop وتعمل أيضًا بالبرمجو الوظيفية functional programming 1 اقتباس
السؤال
Hassan Eldeeb
ما الفرق بين ال functional programming و ال object oriented programming
تم التعديل في بواسطة Hassan Hedrتوضيح العنوان
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.