RO EN
Mediator Pattern – centralized communication between components

Mediator Pattern – centralized communication between components

Mediator Pattern is a behavioral design pattern that enables communication between components through a central object (mediator), reducing direct dependencies and increasing architectural clarity. In this article, you will see how the Mediator Pattern can be applied in a .NET (C#) application, including practical examples and real scenarios from modern applications (UI, business logic, DDD).

Citește mai mult
Iterator Pattern – traversing collections without exposing internals

Iterator Pattern – traversing collections without exposing internals

The Iterator Pattern allows traversing collections without exposing their internal structure. In this article, we discuss when and why to use Iterator, how it separates traversal logic from the collection, and how you can correctly implement it in C# for cleaner, more extensible, and testable code.

Citește mai mult
Interpreter Pattern – interpretation and execution of expressions

Interpreter Pattern – interpretation and execution of expressions

The Interpreter Pattern is a behavioral design pattern that allows the interpretation and evaluation of expressions defined by a simple grammar. It is useful for rule engines, mathematical expressions, filters, and DSLs in .NET applications.

Citește mai mult
Command Pattern – actions treated as independent objects

Command Pattern – actions treated as independent objects

The Command Pattern transforms actions into independent objects, allowing complete decoupling between the initiator of a request and the execution logic. It is ideal for undo/redo, command queues, macros, and extensible architectures.

Citește mai mult
Chain of Responsibility – processing flows in chain

Chain of Responsibility – processing flows in chain

The Chain of Responsibility pattern allows processing a request through a chain of handlers, each having the chance to handle it or delegate it further. It is ideal for validations, pipelines, sequential processing, and flexible systems where the logic can be extended without affecting the existing code.

Citește mai mult
Proxy Pattern – access control to an object (lazy loading, security)

Proxy Pattern – access control to an object (lazy loading, security)

The Proxy Pattern allows control over access to a real object by introducing an intermediary. It is ideal for scenarios such as lazy loading, security, caching, or optimizing access to costly resources.

Citește mai mult
Flyweight Pattern – memory optimization through object reuse

Flyweight Pattern – memory optimization through object reuse

A clear guide on the Flyweight Pattern, explaining how you can reduce memory consumption by reusing common objects in .NET applications.

Citește mai mult
Facade Pattern – simplifying interaction with complex subsystems

Facade Pattern – simplifying interaction with complex subsystems

A clear and practical article about the Facade Pattern in .NET, explaining how we can simplify interaction with complex subsystems through a unified and easy-to-use interface.

Citește mai mult