Posts
All the articles I've posted.
Design Patterns: Null Object
Published: at 03:34 PMThis article discusses the Null Object design pattern, explaining how it can be used to simplify code by removing the need for null checks. It covers the impact of null checks on cyclomatic complexity and provides a practical guide to implementing the pattern for cleaner and more maintainable code
Design Patterns: Template Method
Published: at 04:32 PMThe Template Method pattern defines an algorithm's structure in a base class while allowing subclasses to customize specific steps. This approach reduces code duplication, enforces workflow consistency, and supports better extensibility, making it ideal for scenarios like game logic, UI frameworks, and data processing.
Design Patterns: Memento
Published: at 12:18 PMThe Memento Design Pattern, a powerful tool for implementing undo/redo functionality and managing object states while adhering to software design principles like encapsulation and the Single Responsibility Principle.
Design Patterns: Bridge
Published: at 03:09 PMThe Bridge pattern decouples abstractions from their implementations, enabling flexible and scalable code structures. By favoring composition over inheritance, it helps manage complexity and reduce code duplication.
Design Patterns: Command
Published: at 02:06 PMThe Command design pattern encapsulates actions as objects, allowing for flexible execution, queuing, and undo/redo operations. It decouples command execution from application logic, enhancing modularity and maintainability in systems
SOLID: Dependency Inversion Principle
Published: at 03:20 PMThe Dependency Inversion Principle (DIP) promotes decoupling by ensuring high-level modules depend on abstractions, not low-level details. This leads to more flexible, maintainable, and testable code, often implemented through Dependency Injection.
SOLID: Interface Segregation Principle
Published: at 05:33 PMThe Interface Segregation Principle (ISP) advises that objects should only depend on the interfaces they actually use, promoting smaller, cohesive interfaces over large, cumbersome ones. By adhering to ISP, you reduce coupling, enhance code maintainability, and improve testability, ensuring that clients aren't burdened with unnecessary methods.