Programming has two “methods” through which you’re able to create modern applications – object oriented and form centric.
There’s no “benefit” to using either (they both have their advantages & disadvantages) – the key thing is to realize that if you’re looking at creating certain applications, you may need to use object orientation as the basis of its data structure.
- Object oriented design essentially means that you create a single “application” and then provide the user with the ability to create, manage and destroy “objects” through a single instance of the system.
- Form based design does the opposite – providing the user with the ability to edit “data” through a series of “forms” that will appear at different times within the application. These forms will typically not “hold state” and will be independent to each other.
To understand how this works, you need to appreciate the core underlying way that “programming” works.
Essentially, ALL programming works on the premise of having a central “data” set (which can either be stored in a database, or just in memory as an array or something) and then having inputs & outputs to help the user manage this data.
ALL computer programs work this way – by giving the user various ways to “manage” an underlying data-set. The way they do this is determined by the type of “programming” design you employed when creating the application.
To better describe – the “process” of a computer application is always the same… input → process → output. EVERY time you use a computer application, this is what’s happening. You’re giving the computer a command (input), it will process this command – and then allow you to see the output with the new data.
If you’re using an object oriented system, it’s typically the case that you’ll end up with a single way through which you’re able to manage the various data-sets on the screen.
This is known as being “stateful” — whereby the system will initialize with one instance of an application, and then allow users to “invoke” new variables through a number of different methods. These variables are held in memory, allowing for them to be edited alongside each other. The best example of this is games. Whenever you “load” a game, you’re just invoking an instance of an application, which then means that various “objects” are able to be loaded into the work area.
If you’re using form based system – you’re basically using forms to change specific elements of data. These forms are predominantly stateless – meaning that they have to recreate the data-set each time they are submitted. The best modern example of form-based design is the “web browser” (and, subsequently, most websites). Each “page” you load is basically a form – with the ability to “submit” other forms to change the data a service may manage for you.