Software Design Patterns
This repository catalogs common software design patterns implemented in various langauge.
Cataloged Pattern Implementations
- [Abstract Factory](./docs/abstract factory.md)
- [C++](./docs/abstract factory/abstract factory.cpp)
- [Rust](./docs/abstract factory/abstract factory.rs)
- [TypeScript](./docs/abstract factory/abstract factory.ts)
+-- docs | +-- index.md | +-- pattern1.md +-- pandoc | +-- style.css +-- scripts | +-- ... +-- src +-- pattern1 | +-- pattern1.cpp | +-- pattern1.rs +-- MANIFEST.yaml
scripts directories contain assets for building the website
and scripts for testing/deployment, respectively. The
src directory contains
all the pattern implementations in this repository.
pattern(1..N)(named differently) are directories with source code implementing the pattern that directory names. For an example, take a look at the Singleton directory.
MANIFEST.yamldescribes metadata about each pattern in the catalog and is used to build the entire catalog with
docs directory contains the catalog's Markdown files with embedded pattern
index.mdis the catalog entry point, with information about all the patterns in the catalog.
pattern(1..N).md(named differently) are files containing example source code for a particular pattern.
patternM.mdcontains snippets of all the source codes in
To mirror the information on the GitHub repository with the information on the website, the following is performed:
- On every commit,
embedmeis run, embedding the source code of each pattern implementation in that pattern's
docs/pattern.md. This is then presented on GitHub.
- On each successful build, the repo's CI converts the Markdown source into HTML and pushes it to the GitHub Pages branch.
Do it! See CONTRIBUTING.md.