将形状类修改为借口Ishape
时间: 2024-11-06 21:36:35 浏览: 23
将形状类修改为接口IShape,这是一种更加强烈的抽象形式,使得设计更具扩展性。接口只定义方法,不提供具体实现。下面是修改后的示例:
```java
interface IShape {
double getArea();
void draw();
}
```
现在,Circle和Rectangle类都需要实现这个IShape接口,而不是直接继承Shape类:
```java
class Circle implements IShape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public void draw() {
// 圆形的绘制逻辑
}
}
class Rectangle implements IShape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public void draw() {
// 矩形的绘制逻辑
}
}
```
这种设计模式的好处在于:
1. 提高了代码的灵活性,因为新加入的形状只需实现接口即可,不需要修改原有的Shape接口。
2. 实现了“依赖倒置”原则,降低了类之间的耦合度,使得修改和扩展变得更加容易。
3. 支持多态,不同类型的图形共享相同的接口,方便统一处理和管理。
阅读全文