If you are new to OOP or to programming in general, I’ll give you a
very simplified and quick assessment of approaching a new software
design with object-oriented eyes.
Like structured programming in legacy systems, object-oriented
programming (OOP) is used to manage the complexity of software systems.
However, OOP technology provides several advantages. OOP applications
are easier to maintain, have more reusable components, and are more
scalable, to name a few.
OOP methods make code more maintainable. Identifying the source of errors becomes easier because objects are self-contained (encapsulation). The principles of good OOP design contribute to an application’s maintainability.
Because objects contain both data and functions that act on data, objects can be thought of as self-contained “boxes” (encapsulation).
This feature makes it easy to reuse code in new systems. Messages
provide a predefined interface to an object’s data and functionality.
If you know this interface, you can make use on an object in any
context you want. OOP languages, such as C# and VB.Net, make it easy to
expand on the functionality of these “boxes” (polymorphism and inheritance), even if you don’t know much about their implementation (again, encapsulation).
OO applications are more scalable then their structured programming
roots. As an object’s interface provides a roadmap for reusing the
object in new software, it also provides you with all the information
you need to replace the object without affecting other code. This makes
it easy to replace old and aging code with faster algorithms and newer
The challenges of OOP exists mainly in the conversion of legacy systems
that are built in structured programming languages. The technical
challenge is not as big as the actual design challenge. The goal when
converting is to minimize the effects of the stuctural systems on the
OO nature of the new design, and this can sometimes be difficult.
Currently listening to: Superspy – Save Ferris