猿问

“静态工厂返回的对象不需要存在”是什么意思?

在阅读“Effective Java”时,J.Bloch 遇到了这个声明

静态工厂的第五个优点是在编写包含该方法的类时,返回对象的类不需要存在。

这是什么意思?有人可以用一些例子来解释吗?


回首忆惘然
浏览 296回答 1
1回答

阿晨1998

这意味着您的静态工厂方法的 API 可以返回一个接口类型,该接口类型的实现将在以后编写或生成。举个例子:public static MyInterface getMyInterfaceInstance() {     //load instance dynamically and return it.     }在这种情况下,工厂方法只需要在MyInterface编译时接口存在。实际的实现可以在运行时以多种方式动态加载,包括:创建代理对象反射(运行时加载的可配置实现类名)查找服务加载程序特别是,最后两个选项仅仅意味着实现类可以写在不同的模块中(并且许多模块可以提供接口的实现),并且这些实现类将在运行时被发现 - 这使得静态成为可能工厂方法要写在实际实现类之前。
随时随地看视频慕课网APP

相关分类

Java
我要回答