Oops, concepts are very familiar terminology in the software development world either for experienced or newcomers. If you are fresher you might have found this in your college syllabus and experienced ppl knowingly or unknowingly must have been implemented it in their development works plus or must have been questioned in interviews as well. This article is intended to provide acute information to the newcomers on software architecture focusing the Object-Oriented Programming (OOP).
To keep it simple and understandable I have kept this in a way of question-answer format with some real-world examples. So to start with till now we have two terms to learn about that’s Software Architecture and OOP.
What is Software Architecture?
Software architecture is a set of rules, techniques toward solving software problems. And solving software problems here means how to break a bigger problem (task) into discrete pieces and to also enable re-usability.
What is OOP?
OOP is an approach toward software architecture or could say a design philosophy. In history before OOP we had the old procedural language(C, Pascal). In OOP everything is sustained as an object and with that, we have four OOP concepts i.e. Encapsulation, Abstraction, Polymorphism and Inheritance to enable re-usability.
What is Object?
An object is an entity or thing which can perform a related set of activities. Taking the most popular example of a Car. A car is an Object which can do different tasks depends on which type of car it is. If I ask what is car your answer would be it is a vehicle so then what is the vehicle. In OOP concepts taking the car as an object vehicle will be called a Class.
What is the Class?
Class is a representation of a type of objects and it also describes the detail about the objects. Like vehicle describe something that it will have wheels, so based on the vehicle blueprint we can create a car type object. Class is a blueprint from which single objects are created. The class has three main things names, attributes, and operations.
Example: To summaries it with example Car it is and objects created from Vehicle class. Now what type of car we are getting depends on features i.e. we call properties in OOP, so now by changing few properties in Vehicle class, we can have Sedan, Hatchback, SUV type cars i.e objects. So we can say Vehicle is a well-structured Class.