作者:兔女郎不会吧 | 来源:互联网 | 2024-11-18 12:56
首先,我们定义一个服务接口 Service
,包含两个方法 method1()
和 method2()
:
interface Service {
void method1();
void method2();
}
接着,定义一个工厂接口 ServiceFactory
,用于创建 Service
实例:
interface ServiceFactory {
Service getService();
}
然后,我们创建两个实现类 Implementation1
和 Implementation2
,分别实现 Service
接口:
public class Implementation1 implements Service {
public void method1() {
System.out.println("Implementation1 method1");
}
public void method2() {
System.out.println("Implementation1 method2");
}
public static ServiceFactory factory = new ServiceFactory() {
public Service getService() {
return new Implementation1();
}
};
}
public class Implementation2 implements Service {
public void method1() {
System.out.println("Implementation2 method1");
}
public void method2() {
System.out.println("Implementation2 method2");
}
public static ServiceFactory factory = new ServiceFactory() {
public Service getService() {
return new Implementation2();
}
};
}
最后,我们创建一个工具类 Factories
,用于消费不同的服务实现:
public class Factories {
public static void serviceConsumer(ServiceFactory fact) {
Service s = fact.getService();
s.method1();
s.method2();
}
public static void main(String[] args) {
serviceConsumer(Implementation1.factory);
serviceConsumer(Implementation2.factory);
}
}
通过这种方式,我们可以灵活地创建和使用不同的服务实现,而无需在客户端代码中直接依赖具体的实现类。