116 karma · joined April 8, 2018
Once you have that complexity, you'll always be taking away something from somebody by simplifying.
So all simplifications end up as additional "if" clauses, defeating the purpose.
For social security, you have to get certified by a completely different set of bureaucrats with partially incompatible requirements:
The simplifications, they are additional! (Usually.)
If you can do dependency inversion without reflection, more power to you :-) We can't do classpath scanning in the project I'm working on because of the size of the classpath, and compile time configuration using direct imports would introduce cycles, so reflection it is for us, in one form or another.
It certainly has its cost in additional complexity through indirection, but it's better than creating cyclic dependencies or giant balls of mud.
https://en.m.wikipedia.org/wiki/Dependency_inversion_princip...
You "wire up" the implementations at runtime, using reflection.
Actually, it's quite rewarding once you get into it. Serious business, people depend on you getting it right, but still nobody dies if a bug slips by.
Getting into it requires a year or two, though.
There's a pdf version as well:
http://www.bundesfinanzministerium.de/Web/DE/Themen/Steuern/...
The problem is in computing the input values; it's quite hard to figure out without examples, except the most simple cases.