تطبيق ويب حيث يمكن للمعالجين النفسيين المتخصصين في مجالهم الإجابة على الأسئلة المطروحة عليهم على هذه المنصة.
اعتدت:
مبنى معماري
يتكون المشروع من طبقتين. طبقة الثبات، المرتبطة بقاعدة البيانات، والطبقة الأساسية، غير المرتبطة بقاعدة البيانات
وحدة التحكم => النواة <= الثبات
يمكننا التحدث عن مخطط التبعية مثل هذا. تحتوي الطبقة الأساسية على فئات الواجهة. يحتوي الثبات على الفئات التي أحدد فيها هذه الواجهات. من ناحية وحدة التحكم، استخدمت فئة UnitOfWork لتقليل تبعية وحدة التحكم DBContext . ومع ذلك، على الرغم من أن وحدة التحكم كانت عبارة عن طبقة عالية المستوى ، إلا أنها كانت مقترنة بإحكام بطبقة UnitOfWork، وهي طبقة منخفضة المستوى . لقد استخدمت فئة IUnitOfWork لهذا الغرض. يعرّف IUnitOfWork فئة مجردة تمامًا تحتوي على IRepository's. ثم قمت بجعل فئة UnitOfWork تعتمد على فئة IUnitOfWork . وبالمثل، قمت بإنشاء تبعية بين طبقة وحدة التحكم و IUnitOfWork .
وحدة التحكم => IUnitOfWork <= UnitOfWork
الآن تعتمد طبقة التحكم عالية المستوى على فئة مجردة. وبالمثل، في UnitOfWork، وهي فئة منخفضة المستوى ومفصلة، أصبح Abstrack يعتمد على فئة. في الواقع، ما فعلته هو جعل الطبقة الأساسية مستقلة تمامًا. لقد زادت قابلية اختبار التطبيق. بالإضافة إلى ذلك، تحتوي الطبقة الأساسية على بنية مستقلة عن إطار عمل ORM. لن يؤثر التغيير الذي سيتم إجراؤه في UnitOfWork على طبقة IUnitOfWork.
من ناحية أخرى، في التطبيق، كانت تبعية DbContext لا تزال مستمرة في طبقة UnitOfWork . تسبب هذا بشكل غير مباشر في حدوث مشكلة مقترنة بإحكام بين وحدة التحكم - DbContext . لقد استخدمت إطار عمل حقن التبعية لحل هذه المشكلة. (نينجيكت 3.2.1.0)