ユーザータイプに応じてフィーチャーを制限/修正する必要がある場合、どのようにソフトウェアのアーキテクチャーを設計しますか?ユーザータイプ別にフィーチャーを分離する最善の方法
- 無料
- プレミアム
- ビジネス
そして、我々は、画像のアップロードのためのAPIを実装している機能:たとえば、私たちは3つのユーザータイプを持って言うことができます。
今トリッキーな部分は次のとおりです。
- 無料ユーザーは10枚の画像をアップロードすることができます。
- プレミアムユーザーは100枚の画像をアップロードできます
- ビジネスユーザーは1000枚の画像をアップロードできます。
私は、リクエストを処理するメソッドで「if」を実行できることを知っていますが、他の同様のケース(ユーザータイプに依存する機能)が多数あるため、この問題に対するより優れたスケーラビリティの高いソリューションです。
アイデア?
はい、これは機能します。しかし私はすでに2種類のユーザーを持っています。 1つはAdmin、もう1つはUserです。また、私は貧血ドメインモデルを使用する悪い決断をしたので、すべてのビジネスロジックはサービスクラスで実装されています。おそらく、各プラン/ユーザータイプのサービスを作成し、そのタイプに応じてユーザーに注入すれば、私はおそらく同じ目的を満たすことができます...私が恐れている唯一のことは、不必要な複雑さを加えることです。どう思いますか? – Frankra
多態性は、「型に基づく条件」の正反対です。https://sourcemaking.com/refactoring/replace-conditional-with-polymorphism – heltonbiker
はい、わかります。そして確かに行く方法です。私はエンティティと現在のアーキテクチャを再構築します。どうもありがとうございました! – Frankra