سؤال

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

ولكن - لا يمكنني العثور على أي مثال جيد. سأكون ممتنا أي معلومة.

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

المحلول

في تنفيذي الخاص، يتم استدعاء SPEWEACCCESSSSERVICE من قبل مستودع. إنها حقا واجهة في طبقة مكافحة الفساد. من المفوضين إلى صاحب العمل. يحضر المحول كائنا من النموذج القديم (الذي يحصل عليه من UppoyeAccessFacade)، ثم يمره إلى HOPEEAEACCESTRANSLATOR لتحويل الكائن من النموذج القديم إلى كائن المجال في نموذج التطبيق الخاص بي.

homeeaccessservice.

public Employee findEmployee(String empID){
    return adapter.findEmployee(empID);
}

homeeaccessadapter.

public Employee findEmployee(String empID){
    EmployeeAccessContainer container = facade.findEmployeeAccess(empID);
    return translator.translate(container);
}

homeeaccesstranslator.

public Employee translate(EmployeeAccessContainer container){
    Employee emp = null;
    if (container != null) {
        employee = new Employee();
        employee.setEmpID(idPrefix + container.getEmployeeDTO().getEmpID());
        ...(more complex mappings)

نصائح أخرى

من ال كتاب DDD (تصميم مدفوع المجال: معالجة التعقيد في قلب البرامج) بواسطة إريك إيفانز:

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

وبعد ذلك بقليل

إحدى طرق تنظيم تصميم طبقة مكافحة الفساد هي مزيج من الواجهات والمحولات (من Gamma et al. 1995)، والمترجمين، إلى جانب آليات الاتصالات والنقل تحتاج عادة للحديث بين النظم.

لذلك، قد تجد أمثلة من خلال النظر إلى المقترح نمط محول و نمط الواجهة.

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

مزيد من المعلومات حول طبقة مكافحة الفساد:

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