[design-patterns] ما هو الجذر التجميع؟



Answers

من Evans DDD:

AGGREGATE هو مجموعة من الكائنات المرتبطة التي تعاملنا كوحدة لغرض تغييرات البيانات. كل AGGREGATE له جذور وحدود. تحدد الحدود ما هو داخل AGGREGATE. الجذر هو ENTITY واحد ومحدّد موجود في AGGREGATE.

و:

الجذر هو العضو الوحيد في AGGREGATE أن يسمح الكائنات الخارجية لعقد مراجع إلى [.]

هذا يعني أن الجذور التجميعية هي الكائنات الوحيدة التي يمكن تحميلها من مستودع.

مثال على ذلك هو نموذج يحتوي على كيان Customer وكيان Address . لن نتمكن أبدًا من الوصول إلى كيان Address مباشرةً من النموذج لأنه لا معنى له بدون سياق Customer مرتبط. يمكننا أن نقول أن Customer Address معاً يشكلان نموذجًا وأن Customer هو جذر إجمالي.

Question

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

في سياق نمط المستودع ، ما هو الجذر التجميعي؟




تخيل أن لديك كيان كمبيوتر ، ولا يمكن لهذا الكيان أيضًا أن يعيش بدون كيان البرامج والكيان الخاص به. هذه تشكل التجميع Computer ، النظام الإيكولوجي المصغر لجزء الكمبيوتر من المجال.

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

جرب Aggregate Root كنقطة دخول إلى تجميع.

في رمز C #:

public class Computer : IEntity, IAggregateRoot
{
    public Hardware Hardware { get; set; }
    public Software Software { get; set; }
}

public class Hardware : IEntity { }
public class Software : IValueObject { }

public class Repository<T> : IRepository<T> where T : IAggregateRoot {}

ضع في اعتبارك أن الأجهزة من المحتمل أن تكون ValueObject أيضًا (لا تملك هوية من تلقاء نفسها) ، فكر فيها كمثال فقط.




من رابط معطّل :

داخل Aggregate يوجد Aggregate Root. جذر التجميع هو الكيان الرئيسي لجميع الكيانات الأخرى وأشياء القيمة داخل التجميع.

مستودع يعمل على جذر التجميع.

يمكن العثور على مزيد من المعلومات here أيضًا.




المجموع الكلي يعني جمع شيء ما.
يشبه الجذر أعلى عقدة شجرة ، حيث يمكننا الوصول إلى كل شيء مثل عقدة <html> في مستند صفحة الويب.
analogy analogy ، يمكن للمستخدم الحصول على العديد من المشاركات ويمكن أن يكون لكل منشور العديد من التعليقات. لذلك إذا قمنا بجلب أي مستخدم ، فيمكنه العمل كجذر للوصول إلى جميع المشاركات ذات الصلة والتعليقات الأخرى لتلك المشاركات. هذه كلها معا يقال أن جمع أو تجميع




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






Related