فئة المصنع - هل يجب علي ملء كائني بالبيانات هنا؟

StackOverflow https://stackoverflow.com/questions/189733

  •  06-07-2019
  •  | 
  •  

سؤال

أقوم بإنشاء فئة المصنع التي ستقوم ببناء كائن وإعادته.عادةً ما أقوم بكل الأمور المتعلقة بالبيانات في طبقة الوصول إلى البيانات، لكنني لا أعتقد أنه يمكنني الوصول إلى هدفي وما زلت أفعل ذلك.ما أريد القيام به هو استخدام SQLDataReader لقراءة معلومات البيانات بسرعة وملء الكائن المراد إرجاعه من المصنع.هل هذه فكرة غبية؟هل هناك طريقة أفضل؟أفضّل عدم إرجاع DataSet من DAL إن أمكن، أم أن الأمر يتعلق بالأداء مقابل الأداء.قابلية الصيانة؟

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

المحلول

في معظم الحالات، تعد هذه فكرة جيدة لأن هذه الطريقة توفر فائدتين رئيسيتين:

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

  2. من وجهة نظر OO، فإنك تقوم بتحويل بعض البيانات النقية إلى كائنات وقد تضيف أيضًا سلوكًا إلى الكائنات، مما يجعل الكود أسهل في الصيانة وإعادة الاستخدام.

نصائح أخرى

إذا كنت على يقين من أنك سوف تستخدم جميع البيانات التي يتم تحميلها من SQLDataReader، ثم نعم، يمكنك أن تفعل ذلك في وقت البناء في المصنع. ولكن إذا كان مجموعة البيانات لديها العديد من المجالات، التي لن تستخدم إلا أقلية من ثم المطالبة-تحميل البيانات في الوقت الذي دعا يمكنهم الدخول سيكون استخدام أفضل للموارد.

وقال ذلك، أقترح عليك تحميله في المصنع عندما يكون لديك جميع 'قطع' في متناول اليد، وإذا لم يكن صحيح تماما، عليك أن تعرف ما يحتاج الى اصلاح. تبدأ دائما مع أبسط شيء يمكن ان ينجح.

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

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

وهناك مقايضات أيهما الطريقة التي تذهب، لذلك عموما أود أن ترغب في الاحتفاظ الأشياء بسيطة قدر الإمكان لأطول فترة ممكنة.

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