我正在设计一个在两个第三方服务之间同步数据的应用程序。在其中一个服务中,我在应用程序启动(或池刷新)上获取了各种ID,并使用静态属性打了一个结构。
例如
public struct SfRecordTypes
{
public static string Order = "REMOVED";
public static string Issue = "REMOVED";
}
public struct SfQueues
{
public static string Billing = "REMOVED";
public static string Support = "REMOVED";
public static string SupportDev = "REMOVED";
public static string Field = "REMOVED";
}
在启动时,这些被称为。
public static void PopulateRecordTypes()
{
var sf = new SalesForce();
var recordTypes = sf.GetRecordTypes();
if (recordTypes == null) return;
SfRecordTypes.Order = recordTypes.First(n => n.Name != null && n.Name.Contains("Order")).Id;
SfRecordTypes.Issue = recordTypes.First(n => n.Name != null && n.Name.Contains("Issue")).Id;
sf.Dispose();
}
public static void PopulateQueueIDs()
{
var sf = new SalesForce();
var groups = sf.GetAllGroups();
if (groups == null) return;
SfQueues.Billing = groups.First(n => n.Name != null && n.Name.Contains("Billing Queue")).Id;
SfQueues.Support = groups.First(n => n.Name != null && n.Name.Contains("Support Queue")).Id;
SfQueues.SupportDev = groups.First(n => n.Name != null && n.Name.Contains("Support Developer Queue")).Id;
SfQueues.Field = groups.First(n => n.Name != null && n.Name.Contains("Field Services Queue")).Id;
sf.Dispose();
}
但是,我试图弄清楚如何设计/实现一个我可以调用的单例类,它会自动填充这些值(以使它们成为只读的方式),这样当我使用它们时在未来,他们遵循适当的OOP原则,并且有点清洁。我对单身人士有点新意,我的研究结果好坏参半。