คำถามติดแท็ก hexagonal-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()) ฉันคิดว่ามันค่อนข้างไกลจากสถาปัตยกรรม clean / hex เนื่องจาก Service รู้วิธีสร้างฐานข้อมูลและรู้ว่าสร้างฐานข้อมูลประเภทใด (อาจเป็น InMemoryDatabse หรือ MongoDatabase) ฉันเดาว่าในสถาปัตยกรรม clean / hex ฉันจะมี class DatabaseInterface(ABC): @abstractmethod def …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.