在API设计中,避免使用部分实现的特性是为了保持接口的一致性和可预测性。以下是一些解决方法的示例代码:
public interface Car {
void start();
void stop();
}
public class ElectricCar implements Car {
@Override
public void start() {
// 实现电动汽车的启动逻辑
}
@Override
public void stop() {
// 实现电动汽车的停止逻辑
}
}
public class GasolineCar implements Car {
@Override
public void start() {
// 实现汽油汽车的启动逻辑
}
@Override
public void stop() {
// 实现汽油汽车的停止逻辑
}
}
public interface SortingStrategy {
void sort(int[] array);
}
public class BubbleSortStrategy implements SortingStrategy {
@Override
public void sort(int[] array) {
// 实现冒泡排序算法
}
}
public class QuickSortStrategy implements SortingStrategy {
@Override
public void sort(int[] array) {
// 实现快速排序算法
}
}
public class Sorter {
private SortingStrategy strategy;
public Sorter(SortingStrategy strategy) {
this.strategy = strategy;
}
public void setStrategy(SortingStrategy strategy) {
this.strategy = strategy;
}
public void sort(int[] array) {
strategy.sort(array);
}
}
public interface Shape {
void draw();
}
public class Rectangle implements Shape {
@Override
public void draw() {
// 实现绘制矩形的逻辑
}
}
public class Circle implements Shape {
@Override
public void draw() {
// 实现绘制圆形的逻辑
}
}
public class ShapeFactory {
public static Shape createShape(String type) {
if (type.equals("rectangle")) {
return new Rectangle();
} else if (type.equals("circle")) {
return new Circle();
}
return null;
}
}
这些示例代码都遵循了面向接口编程的原则,将具体实现与接口分离,使得API设计更加灵活、可扩展和易于维护。