This lesson is still being designed and assembled (Pre-Alpha version)

Object Oriented Programming and Design Patterns: Glossary

Key Points

Introduction
  • Design patterns are solutions to common problems in software design.

Object Oriented Programming
Encapsulation
  • Encapsulation is the practice of enclosing data and functions in a class.

Data Abstraction
  • Public vs Private variables and methods

  • Python syntax for private variables and methods

Inheritance
  • Parent vs Child classes

Abstract Classes
  • Abstract Classes

  • Abstract Methods

  • Overwritting Abstract Methods

Polymorphism
  • Encapsulation

  • Inheritance

Adapter Design Pattern
  • An Adapter allows a class to be used as another interface, without modifying the original class.

  • Adapters promote SOLID design principles, enforcing code to be designed towards an interface instead of towards a specific class.

Factory Design Pattern
  • A factory allows writing subclasses that change the way an object is created.

  • Factories promote SOLID design principles, enforcing code to be designed towards an interface instead of towards a specific class.

Visitor Design Pattern
  • The visitor design pattern lets you define operations without changing the classes of the elements that use such operations.

Factory Design Pattern Second Example
  • A factory allows writing subclasses that change the way an object is created.

  • Factories promote SOLID design principles, enforcing code to be designed towards an interface instead of towards a specific class.

Facade Design Pattern
  • A Facade is used to obfuscate the complexity of a subsystem behind a simple interface.

Observer Design Pattern
  • The observer design pattern provides a way for the subject to notify an open-ended number of objects about its own state

Composite Design Pattern
  • The composite design pattern provides a way for manipulating a tree data structure

Glossary

FIXME