【问题标题】:design pattern for building mapping object构建映射对象的设计模式
【发布时间】:2013-09-01 02:29:41
【问题描述】:

我正在尝试使用预先填充的数据构建一个映射对象,并试图找到最好的方法。

我正在努力实现这样的目标。

public static class CodeNameMapping
    {
        private static Dictionary<string, string> _mapping = new Dictionary<string, string>();
        static CodeNameMapping()
        {
            _mapping.Add(Constants.CODE_FS, PageNames.FB_PAGE);
            _mapping.Add(Constants.CODE_MA,PageNames.MA_PAGE);
        }

        public static string GetPageNameFor(string code)
        {
            return _mapping[code];
        }
    }

这是实现这一目标的好方法吗?或者还有其他更好的模式吗?(我可以想到工厂???)

【问题讨论】:

  • 您可能还需要考虑从配置文件构建这些映射。根据我的经验,这些类型的映射具有强烈的变化趋势。我不知道你的映射代表什么;在某些情况下,这些事情确实是不变的,或者它们可能完全在您的代码中。但大多数情况下,您最终需要更改映射,或添加一些新映射。

标签: oop c#-4.0 design-patterns ooad


【解决方案1】:

你可以像这样对字典使用静态初始化器:

public static class CodeNameMapping
{
    private static Dictionary<string, string> _mapping = new Dictionary<string, string>{
        {Constants.CODE_FS, PageNames.FB_PAGE},
        {Constants.CODE_MA, PageNames.MA_PAGE}
    };

    public static string GetPageNameFor(string code)
    {
        return _mapping[code];
    }

}

而且,在 GetPageNameFor 中,您可能希望首先确保密钥存在。

【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    相关资源
    最近更新 更多