https://github.com/rain1024/oop-design-patterns
OOP and Design Patterns in Many Languages
https://github.com/rain1024/oop-design-patterns
Last synced: 3 months ago
JSON representation
OOP and Design Patterns in Many Languages
- Host: GitHub
- URL: https://github.com/rain1024/oop-design-patterns
- Owner: rain1024
- Created: 2022-11-18T17:26:11.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-18T17:26:53.000Z (over 3 years ago)
- Last Synced: 2025-10-25T14:49:02.409Z (8 months ago)
- Size: 1000 Bytes
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OOP and Design Patterns in Many Languages
## Creational Patterns
| Pattern | Description | Status |
|:-------:|:----------- |:------:|
| [Factory Method](/creational/factory.rs) | Defers instantiation of an object to a specialized function for creating instances | ✔ |
| [Abstract Factory](/creational/abstract_factory.rs) | Provides an interface for creating families of releated objects | ✔ |
| [Builder](/creational/builder.rs) | Builds a complex object using simple objects | ✔ |
| [Singleton](/creational/singleton.rs) | Restricts instantiation of a type to one object | ✔ |
## Behavioral Patterns
| Pattern | Description | Status |
|:-------:|:----------- |:------:|
| [Strategy](/behavioral/strategy.rs) | Enables an algorithm's behavior to be selected at runtime | ✔ |
| [State](/behavioral/state.rs) | Encapsulates varying behavior for the same object based on its internal state | ✔ |
| [Command](/behavioral/command.rs) | Converts requests or simple operations into objects. | ✔ |
| [Iterator](/behavioral/iterator.rs) | Lets you traverse elements of a collection without exposing its underlying representation | ✔ |
| [Observer](/behavioral/observer.rs) | Allows one objects to notify other objects about changes in their state. | ✔ |
| [Chain of Responsibility](/behavioral/chain_of_responsibility.rs) | Avoids coupling a sender to receiver by giving more than object a chance to handle the request | ✔ |
## Structural Patterns
| Pattern | Description | Status |
|:-------:|:----------- |:------:|
| [Adapter](/structural/adapter.rs) | allows objects with incompatible interfaces to collaborate. | ✔ |
| [Decorator](/structural/decorator.rs) | Adds behavior to an object, statically or dynamically | ✔ |
| [Proxy](/structural/proxy.rs) | Provides a surrogate for an object to control it's actions | ✔ |