Software design patters are reusable solutions to common problems that arise during software development.
The most popular book on that matter is:
Design Patterns: Elements of Reusable Object-Oriented Software (1994)
(also known as «Gang of Four»)
Patterns from Gang of Four:
Creational:
- Factory
- Abstract Factory
- Builder
- ProtoType
- Singleton
Structural:
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
Behavioural:
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template
- Visitor
Other important patterns:
- Interfaces
- Dependency Injection
- Inversion of Control