In this chapter, we cover the most widely used programming paradigm today: object-oriented programming. Mastering object-oriented programming is crucial for taking advantage of the existing frameworks and libraries available on .NET, as well as writing F# code that can be integrated into those libraries.
Software systems are the some of the most complex things created by man. Consider your typical .NET program: thousands if not millions of lines of source code, transformed into some intermediate language by compilers, then compiled again to machine code via a JITer, which then executes on a processor. Knowing the details about how each step works is just too much to handle.
Rather than sweating all the details of a program, object-oriented programming enables you to organize batches of code into conceptual objects, so that you can limit your interactions with code to small and well-defined interfaces.
There are several benefits to object-oriented programming:
By encapsulating your code into objects, it can be reused, which ultimately saves time and enhances productivity.
Rather than dealing with myriad individual functions and global variables, OOP allows you to deal with one item at a time. Any mutable state is scoped to just the object.
Using polymorphism, you can write code that deals with a base type of object, and still accepts any ...