Category Archives: Object Oriented Programming

What is the benefit (purpose) of Object Oriented Programming (OOP)?

There are two kind of space we have.  Problem Space and Solution Space.  Problem space is the place where problem exist, that is business.  Solution space is the place where you implement the solution, that is computer.

It is the responsibility of a programmer to establish the association between the problem and solution space.   A programmer needs to identify the elements in the problem space and the Object Oriented Programming (OOP) , allows to represent that identified elements in the solution space in terms of ‘Objects’ as like in problem space.  Once Object has been represented in the solution space, we can request the object to perform the operations that fulfills the business needs, in the same way we do in problem space.

For example, if we consider problem space as Banking domain, the elements involved are Accounts, Customer, Transaction, Tellers, etc.  OOP allows us to represent these elements identified in problem space as “real Objects” in the solution space.  Once Object has been represented, we can request those Objects to perform business operation, which in turn, could collaborate with other Objects that we represented to fulfill the business needs.  For example, we can request Teller Object to check the balance of a particular customer in his Account.   The Teller Object exchange needed information (messages) with other other Objects like Account or Customer to fulfill the needs.

So by OOP, one can read a program that describes the solutions as they are reading the words that defines the problem.   So OOP, allows to describes the problem in terms of the problem, rather than in terms of the computer where the solution will run.  This is the powerful level of abstractions that OOP provides.