Java 开闭原则学习

发布时间:2026/5/26 12:48:22

Java 开闭原则学习 一、原始设计的问题原始设计里ChartDisplay的display(String type)方法里通常会写一堆if/else或switch比如java运行if (pie.equals(type)) { new PieChart().display(); } else if (bar.equals(type)) { new BarChart().display(); }违反开闭原则新增图表类型比如折线图时必须修改ChartDisplay的代码不符合 “对扩展开放、对修改关闭”。耦合度高ChartDisplay直接依赖具体的PieChart、BarChart类两者绑定过死。二、重构方案开闭原则 依赖倒置核心思路是抽象出稳定的接口让高层模块依赖抽象而不是具体实现。1. 第一步抽象Chart接口定义所有图表都要实现的通用方法java运行public interface Chart { void display(); }2. 第二步具体图表实现接口让PieChart、BarChart实现Chart接口这样它们就变成了 “可扩展的具体实现”java运行public class PieChart implements Chart { Override public void display() { System.out.println(显示饼状图); } } public class BarChart implements Chart { Override public void display() { System.out.println(显示柱状图); } }3. 第三步重构ChartDisplay依赖抽象接口ChartDisplay不再直接依赖具体图表而是依赖Chart接口代码改为java运行public class ChartDisplay { // 依赖抽象接口而非具体实现 public void display(Chart chart) { chart.display(); } }

相关新闻