أفضل الممارسات من أجل التحميل كائن من تسلسل XML في C#
-
03-07-2019 - |
سؤال
تحياتي
أنا كائن معين والتي يمكن بناؤها من ملف ، على هذا النحو:
public class ConfigObj
{
public ConfigObj(string loadPath)
{
//load object using .Net's supplied Serialization library
//resulting in a ConfigObj object
ConfigObj deserializedObj = VoodooLoadFunction(loadpath);
//the line below won't compile
this = thisIsMyObj;
}
}
أريد أن essense ، ويقول "حسنا, و الآن هذا الكائن لقد إلغاء تسلسل هذا الكائن الذي نحن في الواقع." هناك عدة طرق للقيام بذلك, وأنا أتساءل التي تعتبر من أفضل الممارسات.أفكاري:
- بناء نسخة-في-لي وظيفة نسخ الكائن الحقل من الحقل.هذا هو التنفيذ الحالي و انا متأكد انها فكرة رهيبة منذ كلما عضو جديد يضاف إلى كائن أنا بحاجة إلى أن نتذكر أيضا أن إضافته إلى 'نسخة-في-لي وظيفة و لا يوجد طريقة للصيانة.
- بناء أسلوب ثابت عن ConfigObj الصف الذي يعمل بمثابة الأمر الواقع منشئ التحميل الكائن.هذا يبدو أفضل بكثير ولكن ليس أفضل الممارسات-y.
أنا لست سعيدا تماما مع أي من البلدين ، على الرغم من.ما هو معترف به أفضل الممارسات هنا ؟
المحلول
الخيار الثاني هو ما يسمى طريقة مصنع و هو تصميم تقنية.إذا كنت لا تستخدم هذه التقنية ، قد تجد أن كنت بحاجة إلى معرفة نوع الفئة سوف تحميل قبل تحميل فعلا فئة.إذا قمت بتشغيل في هذه الحالة ، يمكنك استخدام مستوى أعلى نوع من المصنع التي تبدو في تيار يدعو طريقة مصنع لهذا النوع المناسب من الدرجة.
نصائح أخرى
لا يوجد شيء خاطئ مع وجود أسلوب ثابت بدلا من منشئ.في الواقع, وقد عدد من المزايا.
أنا دائما أذهب مع أسلوب ثابت.عادة هو نوع من التسلسل الهرمي التي يتم تحميلها ، ولذلك فقط الكائن الجذر يحتاج الأسلوب.و هذا ليس حقا النهج المألوف في .NET framework (مثلا ، الرسومات.FromImage) ، لذلك ينبغي أن يكون على ما يرام مع المستخدمين من الفئة الخاصة بك.