Thinking Object Oriented





Object Oriented (OO) Programming is a programming paradigm that uses objects and interactions between them to design and implement software applications and computer programs. In the OO programming model, a program is a collection of interacting objects. Each object normally encapsulates data and operations that operate on the data. In contrast, in the conventional programming model, which is affected by the von Neumann computer architecture, a program is a list of subroutines or procedures or functions, which are composed of assignment statements, loops, and/or conditional if-else statements, etc. In this conventional procedural model, data and operations are separate. It is hard to structure code effectively to develop software applications when complexity reaches a certain level. Objects in OO programming are still machinelike, but they could be smart by careful design and implementation. Each object knows things, does things, and makes decisions. Each object potentially collaborate with others. Objects motivate reuse of code as well as concepts, which allows building large-scale applications based on blocks of code more economically.

Thinking Object-Oriented is the real power of OO programming. By thinking and approaching a problem using OO programming paradigm, we could see a program in terms objects and interactions between objects, which is similar to the way we think and model the real-world around us. We can map the objects and relationships in the mini-world at which we are interested into interacting objects in a computer program. We certainly do OO thinking all the time even though we might not call it OO thinking.

The languages we speak will direct the ways we think. OO programming languages such as JAVA, C#, Python facilitate thinking OO in programming. However, we do need to know that we can develop procedural programs using imperative programming languages such as C to solve the problems as well.


They Dared to Dream




Buy at AllPosters.com


Comments

Popular posts from this blog

25 Google Interview Questions

Convert LaTeX to HTML

Art of Software Development