文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

设计模式系列-工厂模式

2024-12-02 09:41

关注

工厂模式属于创建型设计模式。是日常使用比较多的一种设计模式。比如Logback,Spring等框架中都大量使用该设计模式。

上篇文章提到的简单工厂模式虽然在简单系统可以用一用,但是因为工厂类本身包含太多业务逻辑,而且如果想增加新的图表类型,需要修改工厂类等缺点。所以我们的生产系统更多地使用工厂模式。

工厂模式为每一个类都定义一个单独的工厂类,该工厂类只负责创建单一的产品。

举个例子

通过工厂模式实现日志的创建,为不同种类的Logger分别创建不同类型的工厂。

来看一下UML图:

来看一下代码如何实现。

先来定义一个Logger接口,以及LoggerFactory接口。

  1. public interface Logger { 
  2.     void writeLogger(); 
  1. public interface LoggerFactory{ 
  2.     Logger createLogger(); 

分别定义FileLogger和FileLoggerFactory。

  1. public class FileLogger implements Logger { 
  2.     @Override 
  3.     public void writeLogger() { 
  4.         System.out.println("File logger"); 
  5.     } 

如果想增加新的Logger直接实现Logger和LoggerFactory就好了,看一下客户端如何使用。

  1. public class FileLoggerFactory implements LoggerFactory { 
  2.     @Override 
  3.     public Logger createLogger() { 
  4.         //不同Logger的个性初始化工作 
  5.         Logger logger =  new FileLogger(); 
  6.         return logger; 
  7.     } 

总结

工厂模式是创建型模式之一,日常使用比较多,每类产品都有对应的一个工厂类。工厂模式把简单工厂的内部逻辑迁移到了客户端,当需要对功能扩展时,只需要修改客户端就OK了。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯