C# 用c语言设计类#

C# 用c语言设计类#,c#,C#,假设我们要为医生的患者建模:患者有处方历史记录、预约历史记录、测试结果历史记录。。。每个项目本身就是一个列表 创建patient类的最佳方法是什么 class MyPatient{ List<Prescription> Prescriptions {get;set;} List<Appoints> Appoints {get;set;} ... } class Prescription{ string PrescripName {get;set}

假设我们要为医生的患者建模:患者有处方历史记录、预约历史记录、测试结果历史记录。。。每个项目本身就是一个列表

创建patient类的最佳方法是什么

class MyPatient{
   List<Prescription> Prescriptions {get;set;}
   List<Appoints> Appoints {get;set;}
   ...
}

class Prescription{
   string PrescripName {get;set}
   int Dosage {get;set}
}

class PatientAppoint{...}
class-MyPatient{
列出处方{get;set;}
列表指定{get;set;}
...
}
类处方{
字符串PrescriptName{get;set}
int剂量{get;set}
}
类PatientPoint{…}

这就是我的想法;如果您有什么建议,请告诉我。

我不会将所有类都保存在一个文件中,而是为每个类创建一个同名的单独文件。对未来的程序员来说,调试将会很容易,或者理解起来会非常清晰。

是的,这是在OOP中表示这些对象的一种非常标准的方式。您的患者与处方和预约都有一对多的关系,因此您的患者类具有每个处方和预约的集合。在设计类结构和布局时,您可能需要记住如何持久化数据(我假设是数据库)

在设计类时,有很多事情需要考虑:

  • 继承与组合——使用“是”和“有”。

    例如,
    汽车
    就是
    汽车
    汽车
    有一个
    发动机

  • 不要把一堆垃圾扔进一个类中,试图让它为另一个类工作。

    例如,如果您想要处方历史记录,则可能需要处方和日期。但是,如果某个日期不适合,请不要将其扔到“处方”中,而是将其扩展到从“处方”继承的新“处方”历史项目类

  • 从抽象陈述或合同陈述开始,并以此为基础。如果抽象类或接口是不必要的,您不需要保留它们,但它们可能会帮助您实现


  • 基本上,有很多事情要考虑,这个问题是非常开放的。有太多的设计模式和主题要考虑,这是有争议的。总的来说,您的类层次结构/设计看起来不错。

    这是一个很好的例子,说明了模型在运行时可能会出现问题。当你开始画这张图的时候,你可能会在某个时候看到一群病人。如果您有数据适配器来构建患者,并将处方、就诊、测试等历史记录填充到患者类中,那么患者的集合可能会非常大。现在,如果通过网络(比如在WCF服务和客户机之间)传输这个大型集合,它可能会变得很麻烦。例如,如果您只是显示患者列表

    在我看来,我会从一个稍微高一点的角度来看这个系统,并考虑我上面提到的一些事情。如果你要通过收集500个病人,那么我可以考虑一个模型,让我把病人和“项目”历史联系起来,必要时,也可以让他们在需要时分开……/P>
    在我看来,这会影响模型,因为我不喜欢设计一个类,在这个类中,当数据适配器构建实例时,字段的填充是任意的,也就是说,有时它填充字段,有时它不。。。但我以前做过…;)

    我想处方是预约的。。需要那个链接!我更喜欢你的方法(将对象组合成其他对象)是最好的选择,因为随着项目的进行,你可能需要对这些对象进行改进。实际上,想象一下一位医生正在看他的病人的仪表盘。不知道为什么你的标题会将其称为“定义嵌套类”。这里没有嵌套类。另外,请注意,
    MyPatient
    中的属性没有名称。你可能想要类似于
    列出处方{get;set;}
    @frenchie仍然不确定问题是什么,除了@joel指出的语法错误之外,你的设计没有任何问题。我确实计划收集500多名患者。每个病人都有9张名单。你能解释一下我的课堂设计会出什么问题吗?嗨,Frenchie。潜在的问题是,患者的集合可能会变得非常庞大。如果有必要随时获取所有患者的所有患者数据,则该模型是合适的。然而,正如我上面所建议的,如果有时需要附加的历史记录,有时不需要,那么我会将它们分离出来,几乎与在数据库中分离它们的方式相同。我看到的问题是在不需要所有数据的情况下,例如在显示简单的患者列表时,传输非常大的数据集。我计划使用json缓存来存储数据。最初返回组成模型集合的所有子模型的函数将把组成的MyPatients集合传递给json编码器,该编码器将以json字符串格式将每个MyPatient存储在一个索引数据库表中,该表看起来像一个字典。你觉得那样做怎么样?