# torokmark/design_patterns_in_typescript

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/torokmark-design-patterns-in-typescript).**

5,430 stars · 770 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/torokmark/design_patterns_in_typescript
- Homepage: http://torokmark.github.io/design_patterns_in_typescript/
- awesome-repositories: https://awesome-repositories.com/repository/torokmark-design-patterns-in-typescript.md

## Topics

`adapter` `builder` `command` `composite` `design-patterns` `facade` `typescript`

## Description

This project is a TypeScript design patterns library and architecture guide. It provides a collection of industry-standard software architecture patterns implemented in TypeScript to demonstrate object creation and communication.

The library serves as a practical reference for applying object-oriented design principles, utilizing static typing to enforce the structural requirements of these patterns during the compilation phase.

The content covers the implementation of creational patterns to decouple object instantiation from business logic, structural patterns to arrange classes and objects into larger compositions, and behavioral patterns to manage object communication and responsibility distribution.

## Tags

### Software Engineering & Architecture

- [TypeScript Patterns](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/backend-enterprise-systems/system-architecture-designs/typescript-patterns.md) — Provides a comprehensive library of software architecture patterns implemented specifically for the TypeScript language.
- [TypeScript Architectural Patterns](https://awesome-repositories.com/f/software-engineering-architecture/typescript-architectural-patterns.md) — Implements a comprehensive library of industry-standard software architecture patterns using TypeScript.
- [Behavioral Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns.md) — Implements behavioral design patterns that manage the communication flow and assignment of responsibilities between objects.
- [Structural Composition Patterns](https://awesome-repositories.com/f/software-engineering-architecture/compositional-data-structures/structural-composition-patterns.md) — Implements structural patterns like adapters and proxies to wrap objects and translate interfaces.
- [Creational Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns.md) — Provides specialized patterns for decoupling object instantiation from the underlying business logic. ([source](https://cdn.jsdelivr.net/gh/torokmark/design_patterns_in_typescript@main/README.md))
- [Object Communication Flows](https://awesome-repositories.com/f/software-engineering-architecture/data-structures/domain-type-definitions/command-objects/object-communication-flows.md) — Defines established patterns for object interaction and responsibility distribution using command flows.
- [Creational Patterns](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-object-instantiation/object-lifecycle-management/creational-patterns.md) — Provides implementations of creational patterns to decouple object instantiation from business logic.
- [Interface-Based Polymorphism](https://awesome-repositories.com/f/software-engineering-architecture/interface-based-polymorphism.md) — Demonstrates how to use shared contracts to allow interchangeable class implementations via polymorphism.
- [Object Composition Patterns](https://awesome-repositories.com/f/software-engineering-architecture/object-composition-patterns.md) — Provides design strategies for composing objects to simplify complex structural relationships.
- [Communication and Integration Patterns](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/reactive-messaging/communication-integration-patterns.md) — Defines how objects interact and distribute responsibilities using established behavioral communication patterns. ([source](https://cdn.jsdelivr.net/gh/torokmark/design_patterns_in_typescript@main/README.md))
- [Structural Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/structural-design-patterns.md) — Implements structural design patterns to arrange classes and objects into larger, more manageable compositions. ([source](https://cdn.jsdelivr.net/gh/torokmark/design_patterns_in_typescript@main/README.md))
- [Object-Oriented Structural Organization](https://awesome-repositories.com/f/software-engineering-architecture/object-oriented-structural-organization.md) — Arranges classes and objects into structural compositions to simplify relationships between system entities.
- [Static Type Checking](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checking.md) — Uses the TypeScript type system to verify and enforce the structural correctness of design patterns at compile time.
- [Type-Safe Pattern Implementation](https://awesome-repositories.com/f/software-engineering-architecture/type-safe-development/type-safe-pattern-implementation.md) — Uses TypeScript static typing to ensure classic software design patterns are structurally correct at compile time.
- [Pattern Type-Safety](https://awesome-repositories.com/f/software-engineering-architecture/type-safe-interface-architectures/pattern-type-safety.md) — Leverages TypeScript static typing to enforce the structural requirements of design patterns during the build phase.

### Programming Languages & Runtimes

- [Object Creation Strategies](https://awesome-repositories.com/f/programming-languages-runtimes/object-creation-strategies.md) — Provides various object creation strategies to decouple instantiation from business logic.

### Education & Learning Resources

- [Architecture Guides](https://awesome-repositories.com/f/education-learning-resources/dynamic-to-static-typing-transitions/static-typing-guides/architecture-guides.md) — Provides a practical reference for using static typing to enforce object-oriented design principles and structural requirements.

### Networking & Communication

- [Behavioral Routing Patterns](https://awesome-repositories.com/f/networking-communication/message-routing/behavioral-routing-patterns.md) — Implements behavioral patterns that decouple object communication and message routing within a system.
