openskills.info
Course Preview

Design Patterns

Design patterns are reusable solutions to recurring problems in software architecture and object-oriented design. They provide shared vocabulary and proven structural templates — like factories, observers, and strategies — that make code more flexible and easier to communicate about.

itSoftware engineering

Design Patterns

Design patterns give names to recurring software design problems and proven ways to organize a solution. A pattern is not a library or a code template. You adapt its roles and relationships to your context.

That distinction matters. An algorithm tells you which steps to execute. A design pattern describes how responsibilities can collaborate. Two implementations of the same pattern may look different while preserving the same intent.

Why patterns exist

Software changes. New output formats appear. External systems expose incompatible interfaces. Business rules gain variants. A design that binds every decision into one class makes each change spread.

A pattern identifies a recurring pressure and a structure that can contain it. The shared name also gives your team a compact design vocabulary. Saying “Strategy” can focus a discussion on interchangeable behavior. It does not remove the need to explain the actual business rule.

The classic catalog by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides presents 23 object-oriented patterns. The catalog groups them by intent:

  • Creational patterns vary how objects are created.
  • Structural patterns compose classes and objects into larger structures.
  • Behavioral patterns distribute algorithms and responsibilities among objects.

These categories are a map, not a selection procedure. Start with the problem and the likely direction of change. Choose a pattern only when its consequences fit both.

Continue the course

This section is part of the paid course.

See pricing to subscribe, or log in if you already have access.

Where this skill leads

Relevant careers

See how this topic contributes to broader role-level skill maps.

Sources