TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2051 2.47K
Принцип открытости/закрытости (OCP): это принцип из SOLID, который говорит, что классы должны быть открыты для расширения, но закрыты для модификации.

Вместо правки существующей реализации стоит добавлять новое поведение через интерфейсы и наследование в Java, не трогая уже написанный код.

// Плохой способ реализовать генератор отчётов
class ReportGenerator {
public void generateReport(String type) {
if (type.equals("PDF")) {
System.out.println("Generating PDF Report...");
} else if (type.equals("CSV")) {
System.out.println("Generating CSV Report...");
} else if (type.equals("EXCEL")) {
System.out.println("Generating Excel Report...");
}
}
}

// Более правильный вариант

// Определяем интерфейс
interface Report {
void generate();
}

// Реализации
class PdfReport implements Report {
public void generate() {
System.out.println("Generating PDF Report...");
}
}

class CsvReport implements Report {
public void generate() {
System.out.println("Generating CSV Report...");
}
}

// Используем конкретную реализацию
public class ReportApp {
public static void main(String[] args) {
Report report = new PdfReport();
report.generate();
}
}


👉 Java Portal
  • 👍 8
  • ❤ 4
  • 🤔 2
More from @java_iibrary
  1. Sep 27, 2026Java-разработчики, CopyOnWriteArrayList создаёт копию всего внутреннего массива при каждом…
  2. Sep 27, 2026Java-разработчики, ConcurrentHashMap потокобезопасен. Но он не блокирует всю коллекцию при…
  3. Sep 26, 2026Во многих приложениях есть такой эндпоинт. Фронтенд удаляет JWT после того, как пользовате…
  4. Sep 26, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  5. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  6. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →