Tag Archives: solid

Dependency Injection – Interface Injection

What is Interface Injection? »    Also known as Method injection. »    In this case Dependency declared inside the dependent class in the form of interface. »    So any class that implements that interface can be substituted into dependent class. »    Dependency is injected as the parameter of method. »    Useful where the whole class does… Read More »

Dependency Injection (DI)

According to Wikipedia “Dependency injection is a software design pattern that implements Inversion of Control (IoC) and allows a program design to follow the dependency inversion principle (DIP).”  »    Dependency Injection (DI) is a design pattern that demonstrates how to create loosely coupled classes. »    It implements Inversion of Control (IoC) in our program i.e. Dependency Injection (DI) supply the dependencies… Read More »

Dependency Inversion Principle

According to Uncle Bob Martin: A. “High-level modules should not depend on low-level modules. Both should depend on abstractions.” B. “Abstractions should not depend on details. Details should depend on abstractions.” So we can easily explain it as follows: »    The Dependency Inversion principle (DIP) decouples lower level objects from higher level objects. »    To… Read More »

Inversion of Control (IoC)

According to Wikipedia “Inversion of Control (IoC) is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming” We can simplify it as follows: »    IoC is a programming style where a framework or runtime controls the program… Read More »

Gentle Introduction of Dependency

What is Dependency? In programming dependency is the relationship between »    One class with another class or interface, »    One module with another module, »    One method with another method »    One method with another class or interface and so forth.  Consider following scenario: »    Whenever a class A uses another class or interface B,… Read More »

Liscov Substitution Principle

Barbara Liscov defined this principle as follows: “If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T.” According to Uncle Bob Martin… Read More »

Open-Closed Principle

    Definition According to Bertrand Meyer: “A class should be open for extension, but closed for modification” According to Wikipedia: “Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.  ” Open for Extension: »    New behavior can be added in the future »    Which means that o    If… Read More »

Single Responsibility Principle

Definition: According to Uncle Bob Martin “A class should have one, and only one, reason to change” According to Wikipedia “Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.  ” Applicability:  We can apply this idea into different level of our code such as: »    Method/Function:  … Read More »

SOLID Principles

[list icon=”arrow” style=”dotted”] Definition ⇒ SOLID is a set of five guiding principles that help developers design objects that are easy to maintain and use. ⇒ SOLID is a guide not goal. ⇒ SOLID is an acronym where: »    S stands for SRP (Single Responsibility principle) »    O stands for OCP (Open closed principle) »    L stands for LSP (Liskov substitution… Read More »