SOLID: Interface Segregation Principle

Completion of the series of articles on SOLID Principles has been due for a long time now. The lockdown due to Covid-19 has atleast given me more time to be able to work one some of the due items. In this part of the series we will seek to know more about the "I" of … Continue reading SOLID: Interface Segregation Principle

SOLID : Liskov Substitution Principle (Part 2)

In the first part of the post, we visited the core definition of Liskov Substitution principle and took time to understand the problem using an example. In this second part, we would take time to understand some of the governing rules of the principle. The rules that needs to be followed for LSP compliance can … Continue reading SOLID : Liskov Substitution Principle (Part 2)

SOLID : Liskov Substitution Principle (Part 1)

The "L" in SOLID stands for Liskov Substitution Principle, named after Barbara Liskov, who initially introduced in 1987 keynote address. LSP provides guidelines for creating inheritence heirachy where a client can use any class or subclass without breaking the expected behavior. We will begin by looking at the official definition first. If S is a … Continue reading SOLID : Liskov Substitution Principle (Part 1)

Patterns,Principles and Programming.

Have been thinking about putting together a collection of Jump Start Tutorials on some core concepts on Programming, finally getting everything together Design Patterns GOF: Adapter Pattern GOF: Strategy Pattern GOF: Singleton Pattern (Lazy) GOF: Fascade Pattern GOF: Chain Of Responsibility Pattern (CoR) GOF: Template Method GOF: Null Object Pattern GOF: State Pattern GOF: Decorator … Continue reading Patterns,Principles and Programming.

SOLID : Open / Closed Principle

The Open / Closed Principle focuses on one basic requirement, the classes should be Open for extensions, but closed for modification. The better way to explain the principle would be to first express the issue in hand. Consider the below class. The class itself looks good, but what if in future one needs to add … Continue reading SOLID : Open / Closed Principle

SOLID : Single Responsibility Principle

While OOPs is rich with features like inheritance, polymorphism, encapsulation and overloading enabling developers to extract more from modern day programming languages like C#, it is equally important to understand when to use these features based on design principles. SOLID, is a set of 5 principles which when properly applied intend to guide a programmer … Continue reading SOLID : Single Responsibility Principle