一般的なユーザーのすべてのニーズを満たす基本的な User モデルがあります。ここで、ユーザー用にいくつかの異なるロールを作成する必要があります。それぞれのロールには、他のロールでは使用できない約 10 ~ 20 の異なるメソッドがあります。
ユーザーの役割を決定するために、一般的な User クラスをロードする必要があると仮定します...
非常に多くの異なるロールベースのメソッドを一般的なユーザーモデルにパッケージ化するのは非効率的で重いため (すべてのロールで利用できない場合)、ユーザーがロールベースのメソッドにアクセスできるようにする最善の方法は何ですか?それらが必要ですか?
ここに私が投げかけているいくつかのアイデアがあります:
ロールごとに個別のサービス クラスを用意し、ユーザーのロールに従ってそれらを User クラスに付与します。
ユーザークラスのすべてのメソッドを持ち歩き、ユーザーが適切な役割を持っている場合にのみ、それぞれへのアクセスを許可します。
完全にリファクタリングし、役割ベースのクラスを User クラスから継承させます。
これらの良いアイデアはありますか、それとももっと良いアイデアはありますか?