OOP Deconstruction

Object Oriented Programming is quite a fuzzy concept. However, most modern programming languages associate OOP with some of the following features:

  • Objects - Structures bundling together functions (methods) and data.
    • modularity
    • encapsulation
    • namespacing
  • Classes - types of objects
    • sum types
  • Inheritance - behavioral subtyping
    • heterogeneous structures

Inheritance

Let’s start with inheritance, since tearing it apart is quite uncontroversial. Intheritance has been mostly discouraged since early 1990s (GoF Design Patterns, 1994). It is argued that composition should be used instead. When is it advantageous to use inheritance? Are there still any valid use-cases left?

OOP Core Domains

  • UI representation

See Also

#programming