aboutsummaryrefslogtreecommitdiff
path: root/development/boost-di/README
diff options
context:
space:
mode:
Diffstat (limited to 'development/boost-di/README')
-rw-r--r--development/boost-di/README25
1 files changed, 25 insertions, 0 deletions
diff --git a/development/boost-di/README b/development/boost-di/README
new file mode 100644
index 0000000000000..d1828aede4fc3
--- /dev/null
+++ b/development/boost-di/README
@@ -0,0 +1,25 @@
+Dependency Injection (DI) involves passing (injecting) one or more
+dependencies (or services) to a dependent object (or client) which
+become part of the client's state. It is like the Strategy Pattern,
+except the strategy is set once, at construction. DI enables loosely
+coupled designs, which are easier to maintain and test.
+
+Features:
+
+- None run-time overhead;
+- Compiles fast;
+- Gives short diagnostic messages;
+- Is non-intrusive;
+- Reduces boilerplate code;
+- Reduces testing effort;
+- Gives better control of what and how is created;
+- Gives better understanding about objects hierarchy.
+
+Design goals:
+
+- Be as fast as possible;
+- Compile as fast as possible;
+- Give short and intuitive error messages;
+- Guarantee object creation at compile-time;
+- Be as non-intrusive as possible;
+- Be easy to extend.