System Design
Dependency Inversion Principle in Java: Depend on Abstractions, Not Concrete Classes
Jason Yang · 12 May, 2026
Dependency Inversion Principle in Java, explained with notification, payment gateway, Spring Boot, and testing examples.
System Design
Jason Yang · 12 May, 2026
Dependency Inversion Principle in Java, explained with notification, payment gateway, Spring Boot, and testing examples.
System Design
Jason Yang · 12 May, 2026
The Interface Segregation Principle in Java: why one fat interface forces empty methods and UnsupportedOperationException, and how small focused interfaces fix it — with phone, printer, and backend examples.
System Design
Jason Yang · 12 May, 2026
The Liskov Substitution Principle in Java: why a subclass that breaks its parent's contract violates LSP, shown with bird, Flyable, and discount policy examples.
System Design
Jason Yang · 12 May, 2026
The Open-Closed Principle in Java: add new behavior without touching stable code, shown with payment methods, interfaces, and Spring Boot style examples.
System Design
Jason Yang · 12 May, 2026
The Single Responsibility Principle in Java: what 'one reason to change' actually means in practice, with backend service and Spring Boot style examples.