أين يجب أن أقوم بتخزين ثوابت السلسلة الثابتة المعاد استخدامها في التطبيق المرن؟

StackOverflow https://stackoverflow.com/questions/976579

سؤال

لدي تطبيقان Flex Flex CaiNGORM (إصدار كامل وإصدار لايت من نفس التطبيق) الذي يشارك العديد من الفصول. لقد وضعت هذه الفصول في مشروع مكتبة فليكس يجمع كعليين. يستخدم كلا التطبيقين بعض ثوابت السلسلة الثابتة. الآن، أنا تخزن هذه في الموادي:

package model
{
    [Bindable]
    public class ModelLocator
    {
        public static var __instance:ModelLocator = null;

        public static const SUCCESS:String = "success";

        public static const FAILURE:String = "failure";

        public static const RUNNING:String = "running";

        ...
    }
}

هذا فقط لا يبدو أن أفضل مكان لتخزين هذه الثوابت، خاصة الآن أن يتم استخدامها من قبل كلا التطبيقين، ولدي إعداد كل تطبيق للحصول على فئة modellocator الخاصة به. بالإضافة إلى ذلك ليس الغرض من فئة الموادي.

ماذا ستكون طريقة جيدة لتخزين هذه الثوابت في مكتبة مشتركة؟

هل يجب علي مجرد إنشاء فئة مثل هذا؟:

package
{
    [Bindable]
    public class Constants
    {
        public static const SUCCESS:String = "success";

        public static const FAILURE:String = "failure";

        public static const RUNNING:String = "running";
    }
}

ثم الرجوع إليها مثل هذا:

if (value == Constant.SUCCESS)
    ...
هل كانت مفيدة؟

المحلول

أود أن أقول تنظيم الثوابت حسب المعنى المنطقي، بدلا من فئة ثوابت واحدة.

قل أن لديك 3 تظهر كحالة من حالة المهمة، ولديك أكثر من ذلك يتم استخدامه كقوانين خطأ للوصول إلى الملفات (مجرد جعل الأشياء هنا):

public class TaskStates {
  public static const SUCCESS:String = "success";
  public static const FAILURE:String = "failure";
  public static const RUNNING:String = "running";
}

public class FileErrors  {
  public static const FILE_NOT_FOUND:String = "filenotfound";
  public static const INVALID_FORMAT:String = "invalidformat";
  public static const READ_ONLY:String = "readonly";
}

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

يمكنك وضع كل هذه في حزمة واحدة للثوابت، أو هل يمكن أن تعيش الفئات الثابتة في نفس الحزمة مثل الفصول التي تستخدمها.

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