تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ثقافة برمجية(3) : مبادئ solid في تصميم البرامج (1)
#1
السلام عليكم

هناك مبادئ تخص هندسة البرامج، مجموعة كلها في الاختصار : SOLID

موجودة على ويكيبيديا

وساشرحها باختصار وبقدر فهمي في عدة أجزاء

الحرف الاول من كلمة SOLID وهو S

يشير إلى الاختصار SRP = Single responsibility principle

أي المسئولية الوحيدة

هذا المبدأ ينص على أن الفئة\الكلاس يجب ان تكون لديه مسئولية واحدة فقط، كيف ؟

لو كان لدينا فئة تمثل بيانات شخص Person فإنه من المحرمات الكبرى حسب مبدأ SRP أن نضع داخل الفئة مسئوليات أخرى غير احتوائها لبيانات الشخص

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

لنشرح المثال السابق :

فئة Person
PHP كود :
Public Class Person
    
Public Property Name As String
    
Public Property Cpr As String
End 
Class 
إذا خالفنا المبدأ سنقوم بعمل الجريمة التالية (سنضيف كود حفظ + حذف)
PHP كود :
Public Class Person
    
Public Property Name As String
    
Public Property Cpr As String

    
Public Sub Save()
        
'Update Code
    End Sub
    Public Sub Delete()
        '
Delete Code
    End Sub
End 
Class 
والبديل هو إنشاء فئة أخرى لتأدية هذه الوظيفة
PHP كود :
Public Class PersonData
    
Public Sub Save(As Person)
        
'Update Code
    End Sub
    Public Sub Delete(p As Person)
        '
Delete Code
    End Sub
End 
Class 
[COLOR="#FF0000"]
السؤال الذي يحوم في ذهن القارئ
[/COLOR]، لماذا لا اختصر الموضوع واجعلهم في فئة واحدة ؟؟؟ (وهذا ما كنت أؤمن به سابقاً ولكني كفرت به)

والجواب يا عزيزي تحصل عليه إذا سألناك : ماذا لو أردنا حفظ البيانات في ملف xml أو ملف نصي ؟ هل نقوم كل مرة باشتقاق الفئة ؟ أو نضيف وسيط داخل Save ونحدد له أين نريد الحفظ ؟

أليس الأمثل أن نترك الأمر إلى فئة أخرى لتحفظه أين شائت ؟ وبذلك نزيل التعقيد من الفئة Person لتبقى مسئوليتها الوحيدة فقط هي تمثيل بيانات أي شخص

عادةً يسمون الفئات التي تحفظ البيانات بـ Reposirotry بمعنى مستودع (فيه مجموعة أكواد قراءة وكتابة بيانات من وإلى جدول معين)
الرد }}}
تم الشكر بواسطة: Anas Mahmoud
#2
موضوع هام جدا
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ما أهمية الموقع الإلكتروني وما فائدة التعامل مع شركه تصميم مواقع خبيرة ومتخصصة؟ خبير سيو 0 203 05-01-24, 11:24 PM
آخر رد: خبير سيو
  [مقال] اسباب تفاوت الاسعار في تصميم موقع الووردبريس emad ezzat 0 262 13-09-23, 09:48 AM
آخر رد: emad ezzat
  [مقال] تصميم المواقع الالكترونية في الكويت وتصميم موقع الكتروني في السعودية وتصميم موقع الكت emad ezzat 0 239 07-09-23, 10:25 PM
آخر رد: emad ezzat
  افضل شركة تصميم مواقع انترنت مسوق اونلاين 0 381 23-07-22, 09:21 PM
آخر رد: مسوق اونلاين
  [VB.NET] تصميم برنامج RRP Rafaat 0 794 16-01-22, 05:58 PM
آخر رد: Rafaat
  [VB.NET] تصميم برنامج RRP Rafaat 0 643 16-01-22, 05:52 PM
آخر رد: Rafaat
  خطوات تصميم موقع ووردبريس بسنت جمال 0 965 19-11-20, 05:51 PM
آخر رد: بسنت جمال
  لماذا لا يوجد قسم لكسر البرامج viv 1 1,606 04-10-18, 11:13 PM
آخر رد: elgokr
Lightbulb [سلسلة تعليمية] ربما تسـالت يـوماً كيف يتم تحديث البرامج واخبارنا ان هناك نسخة جديدة من البرنامج a_almisery 1 2,179 05-04-18, 12:17 AM
آخر رد: arincin
  ثقافة برمجية(1): طريقة ترتيب الكود أبو يعقوب 6 4,028 27-08-13, 11:54 PM
آخر رد: Riad Soft

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم