我正在开发一个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
,拥有一个翻译类会更好。我不知道该怎么做,仍然实现属性(我需要数据绑定到)。
由于 马特
答案 0 :(得分:1)
您应该使用包含所有DataModel的Provider,例如:
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));
}
}
}
对于此提供商,您还需要一个像Factory一样的工厂:
[Singleton(true)]
public class DataModelListProviderFactory
{
private static DataModelListProvider dataListProvider;
public DataModelListProvider getInstance()
{
if (dataListProvider == null)
{
dataListProvider = new DataModelListProvider();
return dataListProvider;
}
else
return dataListProvider;
}
}
因为现在您拥有一个包含所有DataModel的Spot,并且您只需要接收一次。如果您有案例,或者在视图中显示所有数据,您还可以轻松地在列表中搜索特定模型。
您可以阅读有关工厂模式的更多信息here。
希望有所帮助。