A Business Overview of Object Orientation and Design Patterns


Designing software applications using object orientation design techniques combined with best practice design patterns is the approach NextLevelObjects uses to create medium to complex software applications. If you are not a system architect or application programmer these words may seem nonsensical. However, anyone who has designed and developed even a medium sized system knows how critical these techniques are to technical and business success.

From a business perspective, object oriented design is a technique that is used during the software design process to organize and manage code. In medium to large projects the amount of code that programmers generate can be massive, stretching to hundreds of thousands, or even millions of lines of code. Each line of code is an instruction to do something. Each line of code is important because if it isn't written correctly it can cause business problems (under the worst case scenarios these problems aren't discovered for months). With that much code, keeping the code organized is crucial. If the code isn't organized then finding the code you need to change (for instance) is like finding a needle in a haystack. If you can't find the code you can't change it and, just as importantly, you can't reuse it. If you can't reuse it you may have to rewrite the code all over again, wasting time and creating multiple copies of the same code, each of which has to be managed and maintained. Now multiply that problem by a hundred or a thousand and you begin to see the nature of the challenge.

Disciplined object oriented design minimizes the problems of finding, managing and re-using code. In its simplest sense, it's like putting things in categories (or, in the parlance of object orientation, classes). For instance, anything having to do with customers can be put in the customer class, and anything having to do with products can be put in a product class. This way a programmer simply needs to know what thing she is dealing with, and then find the class that applies to that thing. Object orientation goes much deeper than this, but in a nutshell object orientation is first and foremost about keeping code organized so that it can be shared and re-used.

Object Oriented Design Patterns are best practice techniques in writing object oriented code. Over the years programmers have learned that certain ways of writing object oriented code results in code that is harder to maintain than it should be. Design patterns are the published 'lessons learned' by architects and programmers so that today's programmers don't make the mistakes of the past.