# youlookwhat/designpattern

**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/youlookwhat-designpattern).**

5,115 stars · 1,467 forks · Java

## Links

- GitHub: https://github.com/youlookwhat/DesignPattern
- Homepage: https://youlookwhat.github.io/DesignPattern
- awesome-repositories: https://awesome-repositories.com/repository/youlookwhat-designpattern.md

## Topics

`designpattern` `designpatterns` `java`

## Description

This project is a comprehensive library of twenty-three standard software design patterns implemented in Java. It serves as an educational resource that maps theoretical architectural concepts to practical object-oriented code.

The library organizes these patterns into three primary categories: creational patterns for managing object instantiation, structural patterns for organizing class and object relationships, and behavioral patterns for coordinating communication and responsibility between objects.

The implementation provides concrete class examples for a wide range of industry-standard patterns, including the Singleton, Factory, and Builder patterns for creation; the Adapter, Facade, and Proxy patterns for structure; and the Strategy, Observer, and Command patterns for behavior.

## Tags

### Software Engineering & Architecture

- [Design Pattern Implementations](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-implementations.md) — Provides a complete library of standard software design patterns implemented in Java.
- [Creational Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns.md) — Implements a variety of creational design patterns to manage object instantiation and resource usage in Java. ([source](https://cdn.jsdelivr.net/gh/youlookwhat/designpattern@master/README.md))
- [Design Pattern Collections](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-collections.md) — Offers a curated collection of twenty-three standard software design patterns with Java implementations.
- [Design Pattern Directories](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-directories.md) — Provides a structured directory of creational, structural, and behavioral design patterns for educational use.
- [Structural Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/structural-design-patterns.md) — Implements a collection of structural design patterns to organize class and object relationships in Java. ([source](https://cdn.jsdelivr.net/gh/youlookwhat/designpattern@master/README.md))
- [Adapter Patterns](https://awesome-repositories.com/f/software-engineering-architecture/adapter-patterns.md) — Implements the Adapter pattern to allow incompatible interfaces to work together seamlessly. ([source](https://youlookwhat.github.io/DesignPattern))
- [Behavioral Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns.md) — Implements behavioral design patterns to manage object interaction and responsibility assignment.
- [Memento Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns/memento-patterns.md) — Implements the Memento pattern to capture and restore object internal state without violating encapsulation. ([source](https://youlookwhat.github.io/DesignPattern))
- [Strategy Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns/strategy-patterns.md) — Implements the Strategy pattern to encapsulate interchangeable algorithms that can vary independently from clients. ([source](https://youlookwhat.github.io/DesignPattern))
- [Template Method Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns/template-method-patterns.md) — Provides an implementation of the Template Method pattern to define algorithm skeletons in base classes. ([source](https://youlookwhat.github.io/DesignPattern))
- [Visitor Patterns](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns/visitor-patterns.md) — Implements the Visitor pattern to separate algorithms from the object structures they operate on. ([source](https://youlookwhat.github.io/DesignPattern))
- [Behavioral Logic Coordination](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-logic-coordination.md) — Coordinates communication and responsibility distribution between objects using behavioral design patterns.
- [Composite Patterns](https://awesome-repositories.com/f/software-engineering-architecture/composite-patterns.md) — Provides an implementation of the Composite pattern for treating individual objects and compositions uniformly. ([source](https://youlookwhat.github.io/DesignPattern))
- [Builder Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/builder-patterns.md) — Provides a concrete implementation of the Builder pattern for step-by-step construction of complex objects. ([source](https://youlookwhat.github.io/DesignPattern))
- [Factory Method Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/factory-method-patterns.md) — Provides an implementation of the Factory Method pattern to decouple clients from concrete class instantiations. ([source](https://youlookwhat.github.io/DesignPattern))
- [Prototype Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/prototype-patterns.md) — Implements the Prototype pattern to create new objects by cloning existing instances. ([source](https://youlookwhat.github.io/DesignPattern))
- [Singleton Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/singleton-patterns.md) — Provides a Java implementation of the Singleton pattern to ensure a class has only one global instance. ([source](https://youlookwhat.github.io/DesignPattern))
- [Decorator Patterns](https://awesome-repositories.com/f/software-engineering-architecture/decorator-patterns.md) — Implements the Decorator pattern to dynamically add responsibilities to objects without using inheritance. ([source](https://youlookwhat.github.io/DesignPattern))
- [Facades](https://awesome-repositories.com/f/software-engineering-architecture/facades.md) — Provides a concrete implementation of the Facade pattern to simplify interfaces to complex subsystems. ([source](https://youlookwhat.github.io/DesignPattern))
- [Object-Oriented Structural Organization](https://awesome-repositories.com/f/software-engineering-architecture/object-oriented-structural-organization.md) — Organizes classes and objects using structural patterns to manage complex relationships and interfaces.
- [Observer Patterns](https://awesome-repositories.com/f/software-engineering-architecture/observer-patterns.md) — Provides a practical implementation of the Observer pattern for managing publish-subscribe relationships. ([source](https://youlookwhat.github.io/DesignPattern))
- [Flyweight Patterns](https://awesome-repositories.com/f/software-engineering-architecture/shared-resource-objects/flyweight-patterns.md) — Implements the Flyweight pattern to reduce memory consumption by sharing common state between objects. ([source](https://youlookwhat.github.io/DesignPattern))
- [Logic Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/structural-design-paradigms/decoupled-logic-encapsulation/logic-decoupling.md) — Maps theoretical architectural concepts to practical Java code to decouple logic from implementation details.
- [State Patterns](https://awesome-repositories.com/f/software-engineering-architecture/state-patterns.md) — Implements the State pattern to encapsulate state-specific logic and change object behavior at runtime. ([source](https://youlookwhat.github.io/DesignPattern))
- [Bridge Patterns](https://awesome-repositories.com/f/software-engineering-architecture/structural-design-patterns/bridge-patterns.md) — Implements the Bridge pattern to decouple architectural abstractions from their concrete implementations. ([source](https://youlookwhat.github.io/DesignPattern))

### Education & Learning Resources

- [Software Architecture Guides](https://awesome-repositories.com/f/education-learning-resources/software-architecture-guides.md) — Serves as an educational resource mapping theoretical patterns to practical code examples.

### Programming Languages & Runtimes

- [Concrete Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/class-based-architecture/concrete-implementations.md) — Implements concrete Java classes that realize abstract architectural design patterns.
- [Java Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/java-implementations.md) — Provides a comprehensive library of design patterns specifically implemented using the Java language.
- [Proxy Patterns](https://awesome-repositories.com/f/programming-languages-runtimes/promise-based-object-proxies/remote-object-proxies/proxy-patterns.md) — Provides a Java implementation of the Proxy pattern to control access to a surrogate object. ([source](https://youlookwhat.github.io/DesignPattern))

### Part of an Awesome List

- [Java 项目](https://awesome-repositories.com/f/awesome-lists/more/java.md) — Listed in the “Java 项目” section of the Great Open Source Project awesome list.
