1

医師と患者の両方がログインできる Web サイトを作成しています。

class Doctors {
    String firstName
    String lastName
    String email
    String password
    String hospitalName
    String NPINumber
}

そして患者

class Patients{
    String firstName
    String lastName
    String email
    String password
}

認証/ログインの目的でのみ使用される重複するフィールドがたくさんあることは明らかなので、継承が良い考えなのか、それとも単一のクラスでフラグを作成するだけなのか疑問に思っていました.

したがって、2 つのオプションは次のとおりです。

オプション1

class Users{
    String firstName
    String lastName
    String email
    String password
}

class Doctors extends Users {
    String hospitalName
    String NPINumber
}


class Patients extends Users{
}

オプション-2

class Users{
    String firstName
    String lastName
    String email
    String password
    boolean isDoctor
    String NPINumber
    String hospitalName
}

将来拡張できるようにするには、これらのデザインのどれを選択すればよいかわかりません。

4

1 に答える 1

0

オプション1は確かにOOです。ただし、デザインをさらに良くするために、少し変更を加えます。User を拡張する代わりに、いくつかの共通属性を含む User プロパティを使用しないでください。User クラスを拡張すると、設計がより複雑になる可能性があります。たぶん、このトピックはあなたを助けることができます.

また、提案として、クラスの名前を複数形で使用しないでください。エンティティのコレクションではなく、それ自体がエンティティであると想像してください。たとえば、明らかにクラス Doctor は 1 人の医師を具体的に表しています。1 つ以下です。したがって、Doctor、Patient、および Userを使用する必要があります。それが役に立てば幸い。

于 2012-08-27T14:22:59.860 に答える