Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/JakubVojvoda/design-patterns-cpp
/ types & classes
Types & classes
97 in github.com/JakubVojvoda/design-patterns-cpp
⨍
Functions
253
◇
Types & classes
97
↓ 1 callers
Class
ConcreteAggregate
iterator/Iterator.cpp:16
Class
AbstractClass
* AbstractClass * implements a template method defining the skeleton of an algorithm */
template-method/TemplateMethod.cpp:17
Class
AbstractExpression
* Abstract Expression * declares an abstract Interpret operation that is common to all nodes * in the abstract syntax tree */
interpreter/Interpreter.cpp:42
Class
AbstractFactory
* Abstract Factory * provides an abstract interface for creating a family of products */
abstract-factory/AbstractFactory.cpp:101
Class
Abstraction
* Abstraction * defines the abstraction's interface */
bridge/Bridge.cpp:58
Class
Adaptee
* Adaptee * defines an existing interface that needs adapting and thanks * to Adapter it will get calls that client makes on the Target * */
adapter/ObjectAdapter.cpp:32
Class
Adaptee
* Adaptee * all requests get delegated to the Adaptee which defines * an existing interface that needs adapting */
adapter/ClassAdapter.cpp:31
Class
Adapter
* Adapter * implements the Target interface and when it gets a method call it * delegates the call to a Adaptee */
adapter/ObjectAdapter.cpp:47
Class
Adapter
* Adapter * implements the Target interface and lets the Adaptee respond * to request on a Target by extending both classes * ie adapts the interfa
adapter/ClassAdapter.cpp:49
Class
Aggregate
* Aggregate * defines an interface for aggregates and it decouples your * client from the implementation of your collection of objects */
iterator/Iterator.cpp:23
Class
Builder
* Builder * abstract interface for creating products */
builder/Builder.cpp:50
Class
CareTaker
* CareTaker * is responsible for the memento's safe keeping */
memento/Memento.cpp:83
Class
Client
* Client * creates a new object by asking a prototype to clone itself */
prototype/Prototype.cpp:68
Class
Colleague
* Colleague classes * each colleague communicates with its mediator whenever * it would have otherwise communicated with another colleague */
mediator/Mediator.cpp:22
Class
Command
* Command * declares an interface for all commands */
command/Command.cpp:32
Class
Component
* Component * defines an interface for objects that can have responsibilities * added to them dynamically */
decorator/Decorator.cpp:18
Class
Component
* Component * defines an interface for all objects in the composition * both the composite and the leaf nodes */
composite/Composite.cpp:19
Class
Composite
* Composite * defines behavior of the components having children * and store child components */
composite/Composite.cpp:40
Class
ConcreteBuilderX
* Concrete Builder X and Y * create real products and stores them in the composite structure */
builder/Builder.cpp:73
Class
ConcreteBuilderY
builder/Builder.cpp:91
Class
ConcreteClass
* Concrete Class * implements the primitive operations to carry out specific steps * of the algorithm, there may be many Concrete classes, each impl
template-method/TemplateMethod.cpp:42
Class
ConcreteColleague
mediator/Mediator.cpp:43
Class
ConcreteCommand
* Concrete Command * implements execute by invoking the corresponding * operation(s) on Receiver */
command/Command.cpp:48
Class
ConcreteComponent
* Concrete Component * defines an object to which additional responsibilities * can be attached */
decorator/Decorator.cpp:32
Class
ConcreteCreator
* Concrete Creator * implements factory method that is responsible for creating * one or more concrete products ie. it is class that has * the know
factory-method/FactoryMethod.cpp:84
Class
ConcreteDecoratorA
* Concrete Decorators * add responsibilities to the component (can extend the state * of the component) */
decorator/Decorator.cpp:71
Class
ConcreteDecoratorB
decorator/Decorator.cpp:84
Class
ConcreteElementA
visitor/Visitor.cpp:14
Class
ConcreteElementB
visitor/Visitor.cpp:15
Class
ConcreteFactoryX
* Concrete Factory X and Y * each concrete factory create a family of products and client uses * one of these factories so it never has to instantia
abstract-factory/AbstractFactory.cpp:115
Class
ConcreteFactoryY
abstract-factory/AbstractFactory.cpp:131
Class
ConcreteFlyweight
* ConcreteFlyweight * implements the Flyweight interface and adds storage * for intrinsic state */
flyweight/Flyweight.cpp:55
Class
ConcreteHandler1
* Concrete Handlers * handle requests they are responsible for */
chain-of-responsibility/ChainOfResponsibility.cpp:44
Class
ConcreteHandler2
chain-of-responsibility/ChainOfResponsibility.cpp:71
Class
ConcreteImplementorA
* Concrete Implementors * implement the Implementor interface and define concrete implementations */
bridge/Bridge.cpp:30
Class
ConcreteImplementorB
bridge/Bridge.cpp:42
Class
ConcreteIterator
* Concrete Iterator * implements the interface and is responsible for managing * the current position of the iterator */
iterator/Iterator.cpp:93
Class
ConcreteMediator
* Concrete Mediator * implements cooperative behavior by coordinating Colleague objects * and knows its colleagues */
mediator/Mediator.cpp:80
Class
ConcreteObserver
* Concrete Observer * stores state of interest to ConcreteObserver objects and * sends a notification to its observers when its state changes */
observer/Observer.cpp:36
Class
ConcreteProductA
* Concrete Product * define product to be created */
factory-method/FactoryMethod.cpp:32
Class
ConcreteProductAX
* ConcreteProductAX and ConcreteProductAY * define objects to be created by concrete factory */
abstract-factory/AbstractFactory.cpp:31
Class
ConcreteProductAY
abstract-factory/AbstractFactory.cpp:43
Class
ConcreteProductB
* Concrete Product * define product to be created */
factory-method/FactoryMethod.cpp:48
Class
ConcreteProductBX
* ConcreteProductBX and ConcreteProductBY * same as previous concrete product classes */
abstract-factory/AbstractFactory.cpp:73
Class
ConcreteProductBY
abstract-factory/AbstractFactory.cpp:85
Class
ConcretePrototypeA
* Concrete Prototype A and B * implement an operation for cloning itself */
prototype/Prototype.cpp:32
Class
ConcretePrototypeB
prototype/Prototype.cpp:48
Class
ConcreteStateA
* Concrete States * each subclass implements a behavior associated with a state * of the Context */
state/State.cpp:31
Class
ConcreteStateB
state/State.cpp:43
Class
ConcreteStrategyA
* Concrete Strategies * implement the algorithm using the Strategy interface */
strategy/Strategy.cpp:29
Class
ConcreteStrategyB
strategy/Strategy.cpp:41
Class
ConcreteStrategyC
strategy/Strategy.cpp:53
Class
ConcreteSubject
* Concrete Subject * stores state that should stay consistent with the subject's */
observer/Observer.cpp:98
Class
ConcreteVisitor1
* Concrete Visitors * implement each operation declared by Visitor, which implement * a fragment of the algorithm defined for the corresponding clas
visitor/Visitor.cpp:38
Class
ConcreteVisitor2
visitor/Visitor.cpp:55
Class
Context
* Context * maintains a reference to a Strategy object */
strategy/Strategy.cpp:69
Class
Context
* Context * contains information that's global to the interpreter */
interpreter/Interpreter.cpp:18
Class
Context
* Context * defines the interface of interest to clients */
state/State.cpp:59
Class
Creator
* Creator * contains the implementation for all of the methods * to manipulate products except for the factory method */
factory-method/FactoryMethod.cpp:65
Class
Decorator
* Decorator * maintains a reference to a Component object and defines an interface * that conforms to Component's interface */
decorator/Decorator.cpp:49
Class
Director
* Director * responsible for managing the correct sequence of object creation */
builder/Builder.cpp:113
Class
Element
visitor/Visitor.cpp:13
Class
Facade
* Facade * delegates client requests to appropriate subsystem object * and unified interface that is easier to use */
facade/Facade.cpp:56
Class
Flyweight
* Flyweight * declares an interface through which flyweights can receive * and act on extrinsic state */
flyweight/Flyweight.cpp:19
Class
FlyweightFactory
* FlyweightFactory * creates and manages flyweight objects and ensures * that flyweights are shared properly */
flyweight/Flyweight.cpp:79
Class
Handler
* Handler * defines an interface for handling requests and * optionally implements the successor link */
chain-of-responsibility/ChainOfResponsibility.cpp:17
Class
Implementor
* Implementor * defines the interface for implementation classes */
bridge/Bridge.cpp:17
Class
Invoker
* Invoker * asks the command to carry out the request */
command/Command.cpp:76
Class
Iterator
iterator/Iterator.cpp:15
Class
Leaf
* Leaf * defines the behavior for the elements in the composition, * it has no children */
composite/Composite.cpp:85
Class
Mediator
mediator/Mediator.cpp:15
Class
Memento
* Memento * stores internal state of the Originator object and protects * against access by objects other than the originator */
memento/Memento.cpp:19
Class
NonterminalExpression
* Nonterminal Expression * implements an Interpret operation for nonterminal symbols * in the grammar (one such class is required for every rule in
interpreter/Interpreter.cpp:83
Class
Observer
* Observer * defines an updating interface for objects that should be notified * of changes in a subject */
observer/Observer.cpp:21
Class
Originator
* Originator * creates a memento containing a snapshot of its current internal * state and uses the memento to restore its internal state */
memento/Memento.cpp:48
Class
Product
* Product * products implement the same interface so that the classes can refer * to the interface not the concrete product */
factory-method/FactoryMethod.cpp:19
Class
Product
* Product * the final object that will be created using Builder */
builder/Builder.cpp:18
Class
ProductA
* Product A * products implement the same interface so that the classes can refer * to the interface not the concrete product */
abstract-factory/AbstractFactory.cpp:18
Class
ProductB
* Product B * same as Product A, Product B declares interface for concrete products * where each can produce an entire set of products */
abstract-factory/AbstractFactory.cpp:60
Class
Prototype
* Prototype * declares an interface for cloning itself */
prototype/Prototype.cpp:18
Class
Proxy
* Proxy * maintains a reference that lets the proxy access the real subject */
proxy/Proxy.cpp:45
Class
RealSubject
* Real Subject * defines the real object that the proxy represents */
proxy/Proxy.cpp:31
Class
Receiver
* Receiver * knows how to perform the operations associated * with carrying out a request */
command/Command.cpp:18
Class
RefinedAbstraction
* RefinedAbstraction * extends the interface defined by Abstraction */
bridge/Bridge.cpp:71
Class
Singleton
* Singleton * has private static variable to hold one instance of the class * and method which gives us a way to instantiate the class */
singleton/Singleton.cpp:18
Class
State
* State * defines an interface for encapsulating the behavior associated * with a particular state of the Context */
state/State.cpp:18
Class
Strategy
* Strategy * declares an interface common to all supported algorithms */
strategy/Strategy.cpp:17
Class
Subject
* Subject * defines the common interface for RealSubject and Proxy * so that a Proxy can be used anywhere a RealSubject is expected */
proxy/Proxy.cpp:18
Class
Subject
observer/Observer.cpp:14
Class
SubsystemA
* Subsystems * implement more complex subsystem functionality * and have no knowledge of the facade */
facade/Facade.cpp:18
Class
SubsystemB
facade/Facade.cpp:29
Class
SubsystemC
facade/Facade.cpp:40
Class
Target
* Target * defines specific interface that Client uses */
adapter/ObjectAdapter.cpp:17
Class
Target
* Target * defines specific interface that Client uses */
adapter/ClassAdapter.cpp:17
Class
TerminalExpression
* Terminal Expression * implements an Interpret operation associated with terminal symbols * in the grammar (an instance is required for every termi
interpreter/Interpreter.cpp:60
Class
UnsharedConcreteFlyweight
* UnsharedConcreteFlyweight * not all subclasses need to be shared */
flyweight/Flyweight.cpp:31
Class
Visitor
* Visitor * declares a Visit operation for each class of ConcreteElement * in the object structure */
visitor/Visitor.cpp:22