深入理解开闭原则,java演示
时间: 2023-10-17 17:08:41 浏览: 89
开闭原则是面向对象设计中的一个重要原则,它的核心思想是对扩展开放,对修改关闭。也就是说,一个软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
下面是一个简单的 Java 代码演示开闭原则:
```java
// 定义一个抽象类 Shape
abstract class Shape {
abstract void draw();
}
// 定义具体的图形类 Circle
class Circle extends Shape {
void draw() {
System.out.println("画一个圆形");
}
}
// 定义具体的图形类 Rectangle
class Rectangle extends Shape {
void draw() {
System.out.println("画一个矩形");
}
}
// 定义一个图形绘制器类
class ShapeDrawer {
void draw(Shape shape) {
shape.draw();
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
ShapeDrawer drawer = new ShapeDrawer();
Circle circle = new Circle();
Rectangle rectangle = new Rectangle();
drawer.draw(circle); // 画一个圆形
drawer.draw(rectangle); // 画一个矩形
}
}
```
在上面的代码中,我们定义了一个抽象类 `Shape`,它有一个抽象方法 `draw()`,表示绘制图形。然后我们又定义了两个具体的图形类 `Circle` 和 `Rectangle`,它们分别实现了 `Shape` 类的 `draw()` 方法,表示如何绘制圆形和矩形。
接下来,我们定义了一个图形绘制器类 `ShapeDrawer`,它有一个 `draw()` 方法,接收一个 `Shape` 类型的参数,并调用该参数的 `draw()` 方法来实现绘制图形的功能。
最后,在测试代码中,我们创建了一个 `ShapeDrawer` 对象,并分别传入一个 `Circle` 对象和一个 `Rectangle` 对象来测试图形绘制器的功能。这样,我们就实现了对扩展开放,对修改关闭的原则。当我们需要添加新的图形类时,只需要继承 `Shape` 类并实现 `draw()` 方法即可,而不需要修改 `ShapeDrawer` 类的代码。
当然,这只是一个简单的例子,实际应用中可能会更加复杂。但无论如何,遵循开闭原则都能让我们的代码更加健壮、可扩展和易维护。
阅读全文