实用 AI

可在线运行 AI 集合,涵盖 AI 文案生成、写作辅助、AI 绘图与照片修复、AI 配音、字幕生成、语音转录以及 AI 视频创作和数字人等多种 AI 服务

查看详情

工厂方法模式

软件设计模式
2021-05-17 14:29 · 阅读时长3分钟
小课

工厂方法模式还比较好理解,它主要用于当一个功能有多种实现方案,而我们需要根据参数使用其中一种实现方案的场景下。

我们先看看工厂方法模式的大概套路,假设有三个搜索引擎的实现,分别是Google,Baidu,Yahoo,我们需要根据不同语言返回不同的搜索引擎。

首先定义ISearchEngine接口和search方法。

加载中...

然后是三个ISearchEngine的实现类,Google,Baidu,Yahoo。

加载中...

最后是工厂类,根据不同的语言返回不同的搜索引擎实现类。

加载中...

这看上去和直接在使用的地方写个判断语句实例化不同的实现类没有多大区别,但是实际上工厂方法模式相对于直接实例化有几个优点。

  • 封装了实例化实现类的通用逻辑,如果有多处调用,只需要维护工厂方法。
  • 使用的地方面向接口编程,不再关心具体的实现,后续扩展实现不影响使用它的地方。
总结

工厂方法模式的特点,有一个接口和多个实现类,工厂类有一个方法可以根据参数实例化不同的实现类。工厂方法模式的优点是提高代码的了可维护性和可扩展性。

factory design pattern工厂方法模式简单工厂模式