繁体   English   中英

翻译数据的设计模式

[英]Design pattern for translating data

我正在处理一个 C# 项目,我需要管理数据的本地缓存并将其显示在 GUI 上。

例如我有:

    public class DataFromOtherLibrary

现在我想开设一个课程来帮助翻译我需要的信息

    public class MyDataModel
    {
            private DataFromOtherLibrary cache;
            public MyDataModel ( DataFromOtherLibrary Source)
            {
                    cache = Source;
            }
            public long Field1 { get { return cache.SomeField; } }
            public long Field2 { get { return cache.OtherFiled; } }
     }

现在我有这个问题是我需要创建一个MyDataModel为每DataFromOtherLibrary这将是很好有一个单一的翻译类。 我不知道如何去做并且仍然实现属性(我需要数据绑定到)。

谢谢马特

您应该使用一个包含所有数据模型的提供者,例如:

public class MyDataModelProvider
{
    public List<MyDataModel> DataModelList { get; set; }

    MyDataModelProvider()
    {
        loadDataModelList();
    }

    private void LoadDataModel()
    {
        foreach (Cachobject c in Cache)
        {
            this.DataModelList.Add(new MyDataModel(c.valueA,c.valueB));
        }
    }
}

对于这个提供者,你还需要一个工厂,比如:

[Singleton(true)]
public class DataModelListProviderFactory
{
    private static DataModelListProvider dataListProvider;
    public DataModelListProvider getInstance()
    {
        if (dataListProvider == null)
        {
            dataListProvider = new DataModelListProvider();
           return dataListProvider;
        }
        else
            return dataListProvider;
    }
}

因为现在您拥有一个包含所有数据模型的 Spot,并且您只需接收一次它们。 如果您有案例或在视图中显示所有数据,您还可以轻松搜索特定模型的列表。

你可以在这里阅读更多关于工厂模式的信息。

希望有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM