SOLID Principles Examples With Details Java
SOLID Principles Examples With Details Java
class UserManager {
private User user;
class UserRepository {
public void saveUser(User user) {
// Save user to database
}
}
class EmailService {
public void sendEmail(User user) {
// Send email to user
}
}
2. Open/Closed Principle (OCP)
The Open/Closed Principle suggests that software entities (classes, modules,
functions) should be open for extension but closed for modification.
class DiscountCalculator {
public int calculateDiscount(String customerType) {
if (customerType.equals("regular")) {
return 10;
} else if (customerType.equals("premium")) {
return 20;
}
return 0;
}
}
interface DiscountStrategy {
int getDiscount();
}
class Bird {
public void fly() {
System.out.println("Flying");
}
}
class Bird {}
interface Worker {
void work();
void eat();
void sleep();
}
interface Workable {
void work();
}
interface Eatable {
void eat();
}
interface Sleepable {
void sleep();
}
class PDFExporter {
public void export(String data) {
// Export to PDF
}
}
class ReportGenerator {
public void generateReport(String data) {
PDFExporter exporter = new PDFExporter();
exporter.export(data);
}
}
interface Exporter {
void export(String data);
}
class PDFExporter implements Exporter {
public void export(String data) {
// Export to PDF
}
}
class ReportGenerator {
private Exporter exporter;