getInstance需要传入ApplicationContext对象,这样就可以根据类型获取具体的实现了 。
修改所有存储实现类,如下所示:
import org.springframework.stereotype.Component;@Componentclass RemoteServiceLog implements LoggingOperation {static {LoggerFactory.register("REMOTE", RemoteServiceLog.class);}public void log(String message) {// Implementation}}总结我们通过一个例子,不断迭代带大家理解了工厂模式,工厂模式是一种创建型设计模式,用于创建同一类型的不同实现对象 。我们来总结下这种动态选择对象工厂模式的优缺点 。
优点:
- 容易管理 。在添加新的存储类时,只需将该类放入特定包中,在static代码块中注册它自己到工厂中 。
- 松耦合,当您添加新的存储实现时,您不需要在工厂类中进行任何更改 。
- 遵循SOLID编程原则 。
- 如果是用原生通过类加载的方式,代价比较大,因为它涉及 I/O 操作 。但是如果使用的是SpringBoot,则无需担心,因为框架本身会调用组件 。
- 需要额外编写一个static块,注册自己到工厂中,一不小心就遗漏了 。
推荐阅读
- 兼容模式什么意思 兼容模式
- 新商业模式创新设计?新零售时代的新商业模式是什么意思?
- h1z1生存模式还能玩吗?《H1Z1》配置要求是什么?
- 林肯suv车型价格多少 林肯mkx
- 工厂工场区别?工厂与工场有何区别?
- 硬件检测模式怎么进去 硬件检测
- 海盗船项链 海盗船首饰
- 工人|外资工厂招聘工人抢着去,国内工厂反而招工难!两者到底有何区别
- Android的四种启动模式
- TikTok商业模式揭秘:兴趣电商的商机之路,从“人找货”到“货找人”的新体验
