From 8c94fae6447d269164b9637af9c1209a852af32f Mon Sep 17 00:00:00 2001 From: Crista Lopes Date: Fri, 18 Oct 2013 17:21:27 -0700 Subject: [PATCH] Added README.md for style #19 --- 19-no-commitment/README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 19-no-commitment/README.md diff --git a/19-no-commitment/README.md b/19-no-commitment/README.md new file mode 100644 index 0000000..01302a6 --- /dev/null +++ b/19-no-commitment/README.md @@ -0,0 +1,29 @@ +Style #19 +============================== + +Constraints: + +- The problem is decomposed using some form of abstraction + (procedures, functions, objects, etc.) + +- All or some of those abstractions are physically encapsulated into + their own, usually pre-compiled, packages. Main program and each of + the packages are compiled independently. These packages are loaded + dynamically by the main program, usually in the beginning (but not + necessarily). + +- Main program uses functions/objects from the dynamically-loaded + packages, without knowing which exact implementations will be + used. New implementations can be used without having to adapt or + recompile the main program. + +- External specification of which packages to load. This can be done + by a configuration file, path conventions, user input or other + mechanisms for external specification of code to be linked at run + time. + +Possible names: + +- No commitment +- Plugins +- Why one when we can have many?