
By Yakov Fain | Article Rating: |
|
March 27, 2012 08:00 AM EDT | Reads: |
13,183 |

Design patterns were not born equal. Some of them are boring, while others are special. Do you remember your feelings after learning what the Data Transfer Object is? Don’t remember? Of course – cause you didn’t have any special feelings about it other than “It’s easy”.
What do you say about Singleton? Yeah, this is kinda interesting pattern which gave you something to talk about. Do we really need it? Can’t we just achieve the same effect with static variables? Does it make your entire application tightly coupled? Lots to discuss and share your opinion in online forums.
How about Visitor? You must have remembered those feelings when you ran into it first time. The day when you understood how the Visitor pattern works was crucial in your career – that was the moment when you realized that you were not junior software developer anymore. From that very moment you can consider yourself a mid-level person. Till when? Till you’ll be able to explain the Visitor pattern to at least three juniors. Continuos Explanation (c) might reveal though that Visitor is not exactly what you originally thought it was, but now you really get it!
But there is one pattern that has a very strange effect on people. It’s called Dependency Injection. Decoupling in action! A Customer class doesn’t need to reach out for its Orders! How cool is that! First, it gets you high just like smoking banana peels. Then it makes you a little depressed when you realize that there is always a price to pay – instead of having two simple classes Customer and Order you need to have an Inversion of Control container and should neverforget to properly annotate the injector and injectee. In the server-side Java, containers are not too bad, really. We are used to them and feel pretty comfy inside.
But then, a senior Java developer starts learning other domain-specific programming languages like ActionScript or JavaScript just to realize that these poor people don’t have any IoC containers yet! Can you believe that? This is when the Java developer gets craving to make the lives of those (not as fortunate) ActionScript or JavaScript developers easier. In other words, such DI addict wants to share the needle with the rest of the world and inject, inject, inject… This results in proliferation of the “lightweight” DI frameworks/IoC containers among UI developers, which they should be using on top of whatever framework you currently use. This will overcomplicate the application design, but will allow you to inject Orders into Customers rather than using this so-nineties-getOrders().
Oh well, why did I pour all this on you? I don’t know. But please don’t try to tell this to people who enjoy living in thes IoC worlds or else they’ll become aggressive again and will make you feel stupid for not realizing that one can’t do a proper unit testing without the DI. Do we need unit testing? OK, OK….I won’t even go there.
Published March 27, 2012 Reads 13,183
Copyright © 2012 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Yakov Fain
Yakov Fain is a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay. He wrote a thousand blogs (http://yakovfain.com) and several books about software development. Yakov authored and co-authored such books as "Angular 2 Development with TypeScript", "Java 24-Hour Trainer", and "Enterprise Web Development". His Twitter tag is @yfain
![]() May. 24, 2018 11:30 PM EDT Reads: 9,179 |
By Liz McMillan May. 24, 2018 10:45 PM EDT Reads: 2,838 |
By Pat Romanski ![]() May. 24, 2018 10:00 PM EDT Reads: 5,667 |
By Elizabeth White ![]() May. 24, 2018 05:00 PM EDT Reads: 3,735 |
By Yeshim Deniz May. 24, 2018 04:45 PM EDT Reads: 3,571 |
By Yeshim Deniz May. 24, 2018 04:15 PM EDT Reads: 3,665 |
By Pat Romanski May. 24, 2018 03:45 PM EDT Reads: 3,116 |
By Yeshim Deniz May. 24, 2018 03:15 PM EDT |
By Yeshim Deniz ![]() May. 24, 2018 02:30 PM EDT Reads: 2,487 |
By Yeshim Deniz ![]() May. 24, 2018 02:30 PM EDT Reads: 3,979 |