سؤال

ما هو جديد ASP.NET MVC, اللجنة الأولمبية الدولية, بوكو, الخ.لذلك أريد أن أعرف هل هو موافق استخدام مثل هذا النوع من العمارة.

هذا هو بلدي المشروع التجريبي.

المشروع.الأساسية (هذه الجمعية المشار إليها من قبل جميع المشاريع)

public class User
{
   public string Name {get; set;}
   public List<UserGroup> UserGroups{get; set}
}
public class UserGroup
{
   public string Title{get; set;}
}
public interface IUserService 
{
   User GetById(int id);
}
public interface IUserGroupService 
{
   List<UserGroup> GetByUser(User user);
}

تبدو جيدة, ولكن كيف يمكنني استخدام كسول التحميل من هذا الطريق ؟ أنا لا ترغب في الحصول على المجموعات في كل مرة كنت سيدتي الحصول على المستخدم.

فكرتي هو تعديل بلدي المستخدم الطبقة بهذه الطريقة:

public class User
{
   public string Name {get; set;}
   public List<UserGroup> UserGroups
   {
       get { return _groups ?? (_groups = Services.UserGroupService.GetByUser(this)); }
       set { _group = value;}
   }
}

public class Services
{
    // this class populates some kind with Unity
    public static IUserGroupService UserGroupService {get; set;}
}

ما هو العيب من حل ؟ أنا لا أحب أن بلدي بوكو كائن يستخدم IUserGroupService سبيل المثال.

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

المحلول

أنا لا ترغب في الحصول على المستخدمين في كل مرة كنت سيدتي الحصول على المستخدم.

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

إذا كنت تفعل هذا من ناحية نسخة واحدة إلى وجهات النظر ، هل يمكن أن يكون viewmodel مع مجموعة من المعلومات التي تحتاجها.

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

نصائح أخرى

نظرة باستخدام الصواريخ الاعتراضية هنا.يمكنك إبقاء الأشياء الخاصة بك نظيفة والقيام بكل التهيئة داخل المصانع.

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