The maintainability of a program is largely determined by how well the code is organized. Typical programs are large enough that no single programmer can focus on the details of an entire program at once. Instead, it is necessary to concentrate on a particular functional area while ignoring the implementation details of the remainder of the system. If a program is written using a few long and highly coupled functions, this task is nearly impossible for anyone other than the original programmer. On the other hand, when OOP is applied correctly, a modular design with minimal coupling is achievable. In general, this modularity is the result of two key factors:
|