mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-17 03:50:56 +03:00
Update readme
This commit is contained in:
parent
55c7473b6f
commit
7327ba9ed1
55
README.rst
55
README.rst
|
@ -42,7 +42,7 @@ Status
|
||||||
| | :alt: Coverage Status |
|
| | :alt: Coverage Status |
|
||||||
+---------------------------------------+----------------------------------------------------------------------------------------+
|
+---------------------------------------+----------------------------------------------------------------------------------------+
|
||||||
|
|
||||||
Dependency Injection
|
Dependency injection
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
`Dependency injection`_ is a software design pattern that implements
|
`Dependency injection`_ is a software design pattern that implements
|
||||||
|
@ -73,55 +73,6 @@ Dependency injection pattern provides next advantages:
|
||||||
+ Increased maintainability.
|
+ Increased maintainability.
|
||||||
+ Reconfiguration of system without rebuilding.
|
+ Reconfiguration of system without rebuilding.
|
||||||
|
|
||||||
Next two examples demonstrate refactoring of a small piece of code to
|
|
||||||
dependency injection pattern:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
"""Car & Engine example."""
|
|
||||||
|
|
||||||
|
|
||||||
class Engine(object):
|
|
||||||
"""Example engine."""
|
|
||||||
|
|
||||||
|
|
||||||
class Car(object):
|
|
||||||
"""Example car."""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
"""Initializer."""
|
|
||||||
self.engine = Engine() # Engine is a "hardcoded" dependency
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
car = Car() # Application creates Car's instance
|
|
||||||
|
|
||||||
``Car`` **creates** an ``Engine`` during its creation. Really? Does it make
|
|
||||||
more sense than creating an ``Engine`` separately and then
|
|
||||||
**inject it into** ``Car`` when ``Car`` is being created? Looks more
|
|
||||||
realistic, right?
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
"""Refactored Car & Engine example that demonstrates dependency injection."""
|
|
||||||
|
|
||||||
|
|
||||||
class Engine(object):
|
|
||||||
"""Example engine."""
|
|
||||||
|
|
||||||
|
|
||||||
class Car(object):
|
|
||||||
"""Example car."""
|
|
||||||
|
|
||||||
def __init__(self, engine):
|
|
||||||
"""Initializer."""
|
|
||||||
self.engine = engine # Engine is an "injected" dependency
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
engine = Engine() # Application creates Engine's instance
|
|
||||||
car = Car(engine) # and inject it into the Car's instance
|
|
||||||
|
|
||||||
Example of dependency injection
|
Example of dependency injection
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
@ -295,8 +246,8 @@ Documentation
|
||||||
- `User's guide`_
|
- `User's guide`_
|
||||||
- `API docs`_
|
- `API docs`_
|
||||||
|
|
||||||
Feedback
|
Feedback & Support
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
Feel free to post questions, bugs, feature requests, proposals etc. on
|
Feel free to post questions, bugs, feature requests, proposals etc. on
|
||||||
*Dependency Injector* GitHub Issues:
|
*Dependency Injector* GitHub Issues:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user