タグ付けされた質問 「clean-architecture」

3
Pythonのファクトリメソッドとインジェクトフレームワーク-何がよりクリーンですか?
私のアプリケーションで通常行うことは、ファクトリメソッドを使用してすべてのサービス/ dao / repo /クライアントを作成することです class Service: def init(self, db): self._db = db @classmethod def from_env(cls): return cls(db=PostgresDatabase.from_env()) アプリを作成するとき service = Service.from_env() すべての依存関係を作成するもの テストで実際のデータベースを使用したくない場合は、DIを実行します service = Service(db=InMemoryDatabse()) サービスはデータベースの作成方法を知っており、どのデータベースタイプを作成するか(InMemoryDatabseまたはMongoDatabaseでもかまいません)を知っているため、これはクリーン/ 16進数アーキテクチャとはかなり異なると思います。 私はクリーン/ 16進アーキテクチャでは私が持っていると思います class DatabaseInterface(ABC): @abstractmethod def get_user(self, user_id: int) -> User: pass import inject class Service: @inject.autoparams() def __init__(self, db: DatabaseInterface): …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.