ets-labs / python-dependency-injector

Dependency injection framework for Python
https://python-dependency-injector.ets-labs.org/
BSD 3-Clause "New" or "Revised" License
3.86k stars 303 forks source link

update decoupled-example with abstraction layer #770

Open fanqingsong opened 9 months ago

fanqingsong commented 9 months ago

Hi The decoupled-example code is good, but it lack one important component of DIP rule (https://www.cs.utexas.edu/users/downing/papers/DIP-1996.pdf) I mean the "Abstraction" layer which can help make "user" and "photo" compliant to abstract classes of their own and "analytics" depends on these abstract classes, and even for "analytics" can be extracted one abstract class, then for main.py (the top-level service aggregation) can only depend on these three abstract class, finally "ApplicationContainer" is for connecting the embodied containers("user", "photo", "analytics") to main.py. The update code is better to demostrate DIP rule for developer.

I also update docs part.

Please check. Thanks.