Skip to content

Latest commit

 

History

History
39 lines (21 loc) · 1.85 KB

File metadata and controls

39 lines (21 loc) · 1.85 KB

solid-principle

These are the code samples used in the "Solid Design Principles in Java" course published for Udemy

Udemy course link: https://www.udemy.com/course/basics-of-software-architecture-design-in-java/

S — Single Responsibility Principle

A class should have only a single responsibility. Only one potential change in the software’s specification should be able to affect the specification of the class.

1520241404689

O — Open/Closed Principle

Software entities should be open for EXTENSION, but closed for MODIFICATION. Allow behavior to be extended without modifying the source-code.

image

L — Liskov Substitution Principle

Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.

image

I — Interface Segregation Principle

Many client-specific interfaces are better than one general-purpose interface. No client should be forced to depend on methods it does not use.

image

D — Dependency Inversion Principle

One should depend upon abstractions, not concretions.

  • High-level modules should not depend on low-level modules. Both should depend on abstractions.
  • Abstractions should not depend on details. Details should depend on abstractions.

image

The plug doesn’t care which type of wire it uses, it just needs wires that conduct electricity.