0

基本クラス 'Person' と 3 つの派生クラス 'Student'、'Teacher' および 'Administrator' があるとします。

新しい人物がクライアント側で作成される 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..
}
4

1 に答える 1

5

一般的なものを 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 = "";
于 2013-09-29T00:44:05.947 に答える