要让Java类适应不同需求,可以采用以下几种方法:
// 定义一个接口
public interface MyInterface {
void doSomething();
}
// 实现接口的具体类
public class MyClass1 implements MyInterface {
@Override
public void doSomething() {
System.out.println("MyClass1 does something");
}
}
public class MyClass2 implements MyInterface {
@Override
public void doSomething() {
System.out.println("MyClass2 does something else");
}
}
public class MyClass<T> {
private T data;
public void setData(T data) {
this.data = data;
}
public T getData() {
return data;
}
public void processData() {
// 处理数据的方法,可以根据T的类型执行不同的操作
}
}
// 定义一个策略接口
public interface MyStrategy {
int calculate(int a, int b);
}
// 实现策略接口的具体类
public class MyStrategy1 implements MyStrategy {
@Override
public int calculate(int a, int b) {
return a + b;
}
}
public class MyStrategy2 implements MyStrategy {
@Override
public int calculate(int a, int b) {
return a * b;
}
}
// 使用策略的上下文类
public class MyContext {
private MyStrategy strategy;
public void setStrategy(MyStrategy strategy) {
this.strategy = strategy;
}
public int executeStrategy(int a, int b) {
return strategy.calculate(a, b);
}
}
// 定义一个产品接口
public interface MyProduct {
void use();
}
// 实现产品接口的具体类
public class MyProduct1 implements MyProduct {
@Override
public void use() {
System.out.println("MyProduct1 is being used");
}
}
public class MyProduct2 implements MyProduct {
@Override
public void use() {
System.out.println("MyProduct2 is being used");
}
}
// 定义一个工厂类
public class MyFactory {
public static MyProduct createProduct(String type) {
if (type.equalsIgnoreCase("product1")) {
return new MyProduct1();
} else if (type.equalsIgnoreCase("product2")) {
return new MyProduct2();
} else {
throw new IllegalArgumentException("Invalid product type");
}
}
}
通过使用这些设计模式和技巧,你可以创建灵活且可扩展的Java类,以适应不断变化的需求。