php - لماذا لا يعمل نمط السجل النشط مع نماذج النطاق الغني؟




model-view-controller activerecord (2)

أنا أقرأ فصل الأنماط المعمارية في بوا، ويقول فاولر: "كلما أصبح منطق النطاق أكثر تعقيدا وأنت تتحرك نحو نموذج نطاق غني (116)، يبدأ النهج البسيط لسجل نشط (160) (1) .وتبدأ مطابقة فئات المجال للجداول من واحد إلى واحد في الفشل عندما تقوم بمعالجة منطق النطاق في فصول أصغر.ولم تعالج قواعد البيانات العلائقية الميراث، لذلك يصبح من الصعب استخدام استراتيجيات [عصابة أربعة] وأنماط و أخرى أنيقة ، حيث أن منطق المجال يحصل على المشاكس، تريد أن تكون قادرا على اختباره دون الحاجة إلى التحدث إلى قاعدة البيانات في كل وقت. "

لم أكن أفهم هذا حقا. من خلال "تطابق واحد إلى واحد من فئات المجال إلى الجداول"، هل يعني أنه فقط للفئات حيث لا توجد ارتباطات أو تسلسل هرمي جدول واحد؟

ولماذا يؤدي تخويل منطق النطاق إلى فئات أصغر إلى فشل النمط؟


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


ما يحاول قوله هو أن نماذج المجال الأكثر تعقيدا تكون عادة أكثر من مجرد "بيانات من جدول". هذه النماذج الأكثر تعقيدا تتحدث فاولر عن النماذج التي تحصل على بيانات من جداول مختلفة، وجهات نظر أو ربما حتى مصادر أخرى.

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

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

أنا لا أعرف بالضبط تعريف نمط، لذا يرجى تصحيح لي إذا كنت مخطئا.





poeaa