要讓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類,以適應不斷變化的需求。