我目前在我的代码中的静态变量中存储了一个包含相关信息的测试列表,包括数据库 ID。这是一个例子:
public static class IsokineticTests
{
// Cervical Spine Group
public static MyopathologyTest NeckFlexors = MyopathologyTest.Create(600, "Neck Flexors");
public static MyopathologyTest AnteriorObliques = MyopathologyTest.Create(601, "Anterior Obliques");
public static MyopathologyTest NeckExtensors = MyopathologyTest.Create(602, "Neck Extensors");
public static MyopathologyTest PosteriorObliques = MyopathologyTest.Create(603, "Posterior Obliques");
public static MyopathologyTest LateralFlexion = MyopathologyTest.Create(604, "Lateral Flexion");
// Shoulder Group
public static MyopathologyTest ShoulderAbductors = MyopathologyTest.Create(610, "Shoulder Abductors");
public static MyopathologyTest ShoulderExtensors = MyopathologyTest.Create(611, "Shoulder Extensors");
public static MyopathologyTest ShoulderFlexors = MyopathologyTest.Create(612, "Shoulder Flexors");
public static MyopathologyTest ShoulderLateralRotators = MyopathologyTest.Create(613, "Shoulder Lateral Rotators");
public static MyopathologyTest ShoulderMedialRotators = MyopathologyTest.Create(614, "Shoulder Medial Rotators");
}
然后这些用于通过其他静态属性获取方法创建测试组:
public static class IsokineticTestGroups
{
public static IsokineticTestGroup CervicalSpine
{
get
{
return IsokineticTestGroup.Create("Cervical Spine",
new List<MyopathologyTest>
{
IsokineticTests.NeckFlexors,
IsokineticTests.AnteriorObliques,
IsokineticTests.NeckExtensors,
IsokineticTests.PosteriorObliques,
IsokineticTests.LateralFlexion
});
}
}
}
我现在遇到的问题是基本上没有办法查找特定 ID 的 MyopathologyTest。一种解决方案是创建一个字典并手动将所有这些测试插入到字典中,并以 ID 作为键。这似乎重复了很多代码。
实现这样的事情的正确方法是什么?我想我需要将测试数据外部化,在运行时加载测试并动态生成正确的查找表和组。这是我应该考虑的正确方法还是有更好的方法?