Catalog / Sitemap

Application Sitemap & Directory

Complete hierarchical index of all pages, topics, code samples, and machine-readable feeds in the PatternForge platform.

OOP BEDROCK

OOP Core Foundations

Foundational Object-Oriented Programming mechanisms—most critically Polymorphism—that enable dynamic dispatch, runtime decoupling, and serve as the architectural bedrock for all GoF design patterns.

1 Topics
SOLID

SOLID Principles

The 5 foundational object-oriented design principles formulated by Robert C. Martin (Uncle Bob) to create maintainable, understandable, and flexible software.

5 Topics
DOP

DOP (Data-Oriented Patterns)

Data-Oriented Programming (DOP) & Design patterns that treat data as a first-class citizen, separating code from passive immutable data, maximizing CPU cache locality and composability.

5 Topics
CREATIONAL

Creational Patterns

Patterns that deal with object creation mechanisms, increasing flexibility and reuse of existing code by isolating the object instantiating logic.

5 Topics
  • CREATIONAL
    Singleton Pattern

    Ensure a class has only one instance, and provide a global point of access to it.

    C++ • Python • Java Open →
  • CREATIONAL
    Factory Method Pattern

    Define an interface for creating an object, but let subclasses decide which class to instantiate.

    C++ • Python • Java Open →
  • CREATIONAL
    Abstract Factory Pattern

    Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

    C++ • Python • Java Open →
  • CREATIONAL
    Builder Pattern

    Separate the construction of a complex object from its representation so that the same construction process can create different representations.

    C++ • Python • Java Open →
  • CREATIONAL
    Prototype Pattern

    Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.

    C++ • Python • Java Open →
STRUCTURAL

Structural Patterns

Patterns that explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.

7 Topics
  • STRUCTURAL
    Adapter Pattern

    Convert the interface of a class into another interface clients expect.

    C++ • Python • Java Open →
  • STRUCTURAL
    Decorator Pattern

    Attach additional responsibilities to an object dynamically without modifying its structure.

    C++ • Python • Java Open →
  • STRUCTURAL
    Facade Pattern

    Provide a unified interface to a set of interfaces in a subsystem.

    C++ • Python • Java Open →
  • STRUCTURAL
    Proxy Pattern

    Provide a surrogate or placeholder for another object to control access to it.

    C++ • Python • Java Open →
  • STRUCTURAL
    Composite Pattern

    Compose objects into tree structures to represent part-whole hierarchies.

    C++ • Python • Java Open →
  • STRUCTURAL
    Bridge Pattern

    Decouple an abstraction from its implementation so that the two can vary independently.

    C++ • Python • Java Open →
  • STRUCTURAL
    Flyweight Pattern

    Fit more objects into the available amount of RAM by sharing common parts of state between multiple objects.

    C++ • Python • Java Open →
BEHAVIORAL

Behavioral Patterns

Patterns concerned with algorithms and the assignment of responsibilities between objects, defining clear communication channels.

10 Topics
  • BEHAVIORAL
    Strategy Pattern

    Define a family of algorithms, encapsulate each one, and make them interchangeable at runtime.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Observer Pattern

    Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified automatically.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Command Pattern

    Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.

    C++ • Python • Java Open →
  • BEHAVIORAL
    State Pattern

    Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Chain of Responsibility Pattern

    Pass requests along a chain of handlers. Upon receiving a request, each handler decides either to process the request or to pass it to the next handler in the chain.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Template Method Pattern

    Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Iterator Pattern

    Access the elements of an aggregate object sequentially without exposing its underlying representation.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Mediator Pattern

    Reduce chaotic dependencies between objects by restricting direct communications between the objects and forcing them to collaborate only via a mediator object.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Memento Pattern

    Capture and externalize an object’s internal state without violating encapsulation, so that the object can be restored to this state later.

    C++ • Python • Java Open →
  • BEHAVIORAL
    Visitor Pattern

    Separate an algorithm from the object structure on which it operates.

    C++ • Python • Java Open →