سؤال

إذا كان لدى الفئة الكثير من المعلمات في المنشئ ، فيمكننا إما استخدام بنية أو نمط منشئ.

ايهما افضل؟ هل هناك أي ممارسة جيدة؟

هل كانت مفيدة؟

المحلول

استخدم فصلًا بهيكل يلبي حاجتك. مارتن فاولر لديه تقنية واحدة مماثلة تسمى datatransferoBject (DTO), ، حيث تقوم بتمرير نموذج كائن بدلاً من استرداد البيانات باستخدام مكالمات متعددة (مكالمات قاعدة بيانات persumpless) ، مما يقلل التكلفة.

الفائدة على نمط البناء:

  1. لا يحتوي بنية الفصل على منطق إضافي ، مما يعني أنه من الأسهل القراءة (منطق أقل)
  2. لا تخلق مُنشئ يقوم بأعمال حقيقية رائحة الرمز ، مرة أخرى تجعل الكود أسهل في القراءة
  3. العملية رخيصة ، لأنك فقط تمرير المراجع وعدم إنشاء كائن جديد تمامًا. خاصة عندما يكون بنية البيانات كبيرة.

الجانب السلبي: الكائن في حالة قابلة للتغيير.

نصائح أخرى

يعتمد ذلك على ماهية المعلمات وعلاقتها مع بعضها البعض وعدد العدد المطلوب مقابل اختياري.

إذا كانت العديد من المعلمات مرتبطة ، فمن الأفضل عادة إنشاء فئة منفصلة (أو بنية) لتخزين تلك المعلمات.

على سبيل المثال بدلاً من

TransferMoney(long srcAccountNumber, int srcAmount, Currency srcCurrency, long destAccountNumber)

يمكننا أن نرى أن SRC Ammount و SrcCrency مرتبطون ويمكننا إنشاء فئة جديدة للتعامل مع أموال المبالغ المختلفة (وربما إضافة طرق للتحويل إلى عملات أخرى وما إلى ذلك) وتقليل عدد المعلمات:

TransferMoney(long srcAccountNumber, Money amount, long destAccountNumber)

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top