如何有效地创建派生类

本文关键字:派生 创建 有效地 | 更新日期: 2023-09-27 18:33:15

>假设我有一个基类"人"和 3 个派生类,"学生"、"教师"和"管理员"。

在客户端创建新人的 Web 应用程序中,在服务器端,创建所需子类的最有效方法是什么,而不必为每个子类重复所有基类属性。在下面的示例中,我不得不为每个子类重复 Name、DOB 和 Address 属性。

void CreatePerson(someDto dto)
{
    Person person;
    if (dto.personType == 1)
    {
        person = new Student() { .. };
        person.Name = "";
        person.DOB = "";
        person.Address = "";
    }
    else if (dto.personType == 2)
    {
        person = new Teacher() { .. };
        person.Name = "";
        person.DOB = "";
        person.Address = "";
    }
    else if (dto.personType == 3)
    {
        person = new Administrator() { .. };
        person.Name = "";
        person.DOB = "";
        person.Address = "";
    }
    // Do something with person..
}

如何有效地创建派生类

你可以把常见的东西移出if/else

 if (dto.personType == 1)
    {
        person = new Student() { .. };
    }
    else if (dto.personType == 2)
    {
        person = new Teacher() { .. };
    }
    else if (dto.personType == 3)
    {
        person = new Administrator() { .. };
    }
    person.Name = ""; // I believe these 3 properties will come from dto
    person.DOB = "";
    person.Address = "";