
Design Patterns
Check out our ebook on design patterns and principles. It's available in PDF/ePUB/MOBI formats and includes the archive with code examples in Java, C#, C++, PHP, Python, Ruby, Go, Swift, & TypeScript.
What's a design pattern? - refactoring.guru
Design patterns are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.
The Catalog of Design Patterns - refactoring.guru
The catalog of design patterns grouped by intent, complexity, and popularity. The catalog contains all classic design patterns and several architectural patterns.
Code Examples of Design Patterns - refactoring.guru
Code examples of design patterns in various languages: C#, C++, Go, Java, PHP, Python, Ruby, Rust, Swift, TypeScript, and more.
Refactoring and Design Patterns
Hello, world! Refactoring.Guru makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles, and other smart programming topics. This site shows …
Classification of patterns - refactoring.guru
This book covers three main groups of patterns: Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code. Structural patterns explain how to assemble …
Structural Design Patterns - refactoring.guru
Structural design patterns explain how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient.
Design Patterns in Python - refactoring.guru
The catalog of annotated code examples of all design patterns, written in Python.
State - refactoring.guru
The pattern suggests that you extract all state-specific code into a set of distinct classes. As a result, you can add new states or change existing ones independently of each other, reducing the maintenance …
Factory Method - refactoring.guru
Factory Method is a creational design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.