As the name implies, Object-Oriented Programming (OOP) is a development methodology centered on “objects” and data rather than “procedures” and logic. Object-oriented applications are collections of objects; each object is a self-sufficient module containing all the data and logic necessary to manipulate its own data structure. This differs from the conventional procedural-based methodology in which functionality is exposed as a list of logical tasks and/or subroutines that accept and return data. With object-oriented design, each object exposes logical tasks and/or subroutines in the form of methods, making invocation quite simple since most, if not all, of the required data already resides within the object.
To better understand the conceptual differences between the object-oriented and procedural methodologies, consider a scenario in which interaction with an SMTP (email) server is required. Parameters of interest include the server name, user name and password. Methods of interests include sending and receiving mail. With a procedural-based approach, the aforementioned parameters would need to be passed with each and every send or receive request. With an object-based approach the server name, user name and password need only be specified once at the object level. All subsequent send or receive requests need not require the primary parameters since the information resides internally within the object. Additional SMTP-related methods leveraging the same primary parameters could easily be added to the object down the road meaning object scalability is an added benefit of object-oriented design as well.
While the example above is quite simple, it demonstrates the convenience and flexibility of object-oriented designs. Razorleaf’s development team has years of experience with object-oriented design, so please feel free to contact us with any questions.