كتاب DDD ، إريك إيفانز: ما المقصود بـ "يجب أن يتم استخلاص المصنع إلى النوع المطلوب بدلاً من الفئة الملموسة (ES)."؟

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

سؤال

في التصميم المدفوع بمجال الكتب ، بقلم إريك إيفانز ، في الفصل 6 في قسم "المصانع" (صفحة 139) يقول ما يلي:

"المتطلبات الأساسية لأي مصنع جيد هما:

...

"2. يجب استخلاص المصنع إلى النوع المطلوب بدلاً من الفئة الخرسانية (ES)."

هل يمكن أن توضح ما هو المقصود من هذا البيان حول المتطلبات الأساسية رقم 2.

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

المحلول

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

public interface ISomethingFactory
{
    ISomething Create();
}

public class SomethingFactory : ISomethingFactory
{
    public ISomething Create()
    {
        return new Something();
    }
}

نصائح أخرى

أعتقد أن هذا يعني أنه يجب ألا تعيد أبدًا نوعًا ملموسًا من مصنعك. على سبيل المثال ، إذا كان لديك واجهة ، دعنا نقول Isomething ، و Class Class Something ، وأخيراً بعض الفئات التي تنفذ هذه الواجهة وترث من الفئة الأساسية. يجب أن تقوم طريقة الإنشاء الخاصة بك بإرجاع نوع الواجهة ، من النوع الأساسي. أعتقد أن هذه هي الفكرة.

public ISomething Create() { ... }

بدلاً من

public SomethingBase Create() { ... }

آمل أن يساعد ، كارلوس.

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