mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-22 17:47:02 +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 |
|
||||
+---------------------------------------+----------------------------------------------------------------------------------------+
|
||||
|
||||
Dependency Injection
|
||||
Dependency injection
|
||||
--------------------
|
||||
|
||||
`Dependency injection`_ is a software design pattern that implements
|
||||
|
@ -73,55 +73,6 @@ Dependency injection pattern provides next advantages:
|
|||
+ Increased maintainability.
|
||||
+ 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
|
||||
-------------------------------
|
||||
|
||||
|
@ -295,8 +246,8 @@ Documentation
|
|||
- `User's guide`_
|
||||
- `API docs`_
|
||||
|
||||
Feedback
|
||||
--------
|
||||
Feedback & Support
|
||||
------------------
|
||||
|
||||
Feel free to post questions, bugs, feature requests, proposals etc. on
|
||||
*Dependency Injector* GitHub Issues:
|
||||
|
|
Loading…
Reference in New Issue
Block a user