3 ms·
For the sake of this example, let's say that the different gateways have vastly different APIs, messaging mechanisms, etc. So in the code that you are passing
by brown9-2 16y ago
For the sake of this example, let's say that the different gateways have vastly different APIs, messaging mechanisms, etc.
So in the code that you are passing a parameter to, you'd have to have some sort of branch based on the parameter value to choose to call Gateway A versus Gateway B - correct?
Which requires you, when switching gateways, to change the value of the parameter passed along with possibly updating the branch to be aware of what the different Gateway modules you might call would be - correct?
- jerf 16y agoThis is basic object orientation: You pass in an object that corresponds to the desired interface. "Facade pattern" if you need something to Google, but this is really basic language-agnostic OO stuff. Another reason to dislike the Java cruft; it successfully hides the simple things going on behind immense machinery and complicated terminology.
- brown9-2 16y agoSo this is what confuses me about claims that in Python you don't need all this extra cruft, because the language makes these things possible: if you are using the Facade pattern in Python for this example, you'd be using the same pattern in Java. So then, what exactly is different here?
- deleted 16y ago[deleted]
- jerf 16y agoNothing! Dependency injection is just programming. You don't need a "framework" for it, even in Java. Java is crufty in other ways that may make various objects more painful to use than in Python; where you need a zoo of classes in Java you often don't in Python. But this isn't one of those places. The term does nothing but create confusion for no good reason.