使用Guice依赖注入实现工厂模式[4]——Factory Method 模式
Notice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。
Factory Method 模式 http://www.riabook.cn/doc/designpattern/FactoryMethod.htm
如果保持这个模式,需要创建一个表现依赖关系的模块类如下:
?
import com.google.inject.Guice;import com.google.inject.Inject;import com.google.inject.Injector;public class AbstractEditor { private IDocument document; @Inject public void newDocument(IDocument docu){ document = docu; document.open(); } public void saveDocument() { if(document != null) document.save(); } public void closeDocument() { if(document != null) document.close(); } public static void main(String[] args){ Injector injector = Guice.createInjector(new EditorModule()); AbstractEditor editor = injector.getInstance(AbstractEditor.class); editor.saveDocument(); editor.closeDocument(); }}?
运行时可以发现,Guice在创建editor实例的时候,自动运行了Inject注解的newDocument方法。
?
?
?