"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تتجنب تكرار التعليمات البرمجية عند تنفيذ طرق متطابقة على الهياكل ذات الحقول المشتركة؟

كيف تتجنب تكرار التعليمات البرمجية عند تنفيذ طرق متطابقة على الهياكل ذات الحقول المشتركة؟

تم النشر بتاريخ 2024-11-19
تصفح:416

How to Avoid Code Duplication When Implementing Identical Methods on Structs with Shared Fields?

أفضل الممارسات لاستخدام وظيفة مشتركة عبر الهياكل ذات الحقول المتطابقة

في السيناريوهات التي تمتلك فيها بنيتان حقولًا متطابقة، فمن المستحسن منع تكرار التعليمات البرمجية عند تحديد الأساليب التي تعمل في تلك الحقول.

النوع المخصص كمستقبل الطريقة

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

التركيب

بمجرد التخصيص يتم تعريف النوع، ويمكن دمجه في الهياكل باستخدام التركيب. يتضمن ذلك تضمين النوع المخصص داخل البنيات، مما يؤدي بشكل أساسي إلى إنشاء بنية متداخلة.

مثال

خذ بعين الاعتبار مقتطف التعليمات البرمجية التالي:

type Version string

func (v Version) PrintVersion() {
    fmt.Println("Version is", v)
}

type Game struct {
    Name               string
    MultiplayerSupport bool
    Genre              string
    Version
}

type ERP struct {
    Name               string
    MRPSupport         bool
    SupportedDatabases []string
    Version
}

هنا، يعمل نوع الإصدار كمستقبل للطريقة، ويمكن الوصول إلى طريقة PrintVersion الخاصة به من خلال كل من بنيات اللعبة وتخطيط موارد المؤسسات (ERP) نظرًا لحقول الإصدار المضمنة الخاصة بهما.

الاستخدام

يمكن استخدام حقل الإصدار المضمن وتعديله تمامًا مثل أي حقل آخر:

main() {
    g := Game{
        "Fear Effect",
        false,
        "Action-Adventure",
        "1.0.0",
    }

    g.PrintVersion() // Version is 1.0.0

    e := ERP{
        "Logo",
        true,
        []string{"ms-sql"},
        "2.0.0",
    }

    e.PrintVersion() // Version is 2.0.0
}

من خلال استخدام هذا الأسلوب، يتم التخلص من تكرار التعليمات البرمجية المرتبطة بالطرق المكررة مع الحفاظ على المرونة وسلامة الكتابة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3