当前位置: 首页 > news >正文

信宜做网站动漫制作专业就业方向

信宜做网站,动漫制作专业就业方向,wordpress 退出登录,网站定制开发上海文章目录工厂方法模式(Factory Method Pattern)核心原理Java 实践示例运行结果工厂方法模式的特点工厂方法模式的应用场景工厂方法模式(Factory Method Pattern) 工厂方法模式是 23 种设计模式中的一种创建型模式,其核…

文章目录

  • 工厂方法模式(Factory Method Pattern)
  • 核心原理
  • Java 实践示例
  • 运行结果
  • 工厂方法模式的特点
  • 工厂方法模式的应用场景

工厂方法模式(Factory Method Pattern)

工厂方法模式是 23 种设计模式中的一种创建型模式,其核心思想是定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化推迟到子类中进行,从而实现创建逻辑与使用逻辑的解耦。

核心原理

抽象产品(Product)
定义产品的接口,是工厂方法模式所创建对象的超类型
描述所有产品共有的公共接口
具体产品(ConcreteProduct)
实现抽象产品接口,是工厂方法模式的创建目标
每个具体产品对应一个具体工厂
抽象工厂(Factory)
声明工厂方法,该方法返回一个抽象产品类型
可以包含其他与产品相关的业务逻辑
具体工厂(ConcreteFactory)
实现抽象工厂的工厂方法,返回具体产品的实例
负责创建对应类型的具体产品

工厂方法模式的核心是 “将对象创建延迟到子类”,通过多态性实现了产品创建的灵活扩展。

Java 实践示例

以 “文档编辑器” 为例实现工厂方法模式:
编辑器可以创建不同类型的文档(文本文档、表格文档)
每种文档由对应的工厂负责创建

package com.example.demo;public class FactoryMethodPattern {public static void main(String[] args) {// 创建文本文档工厂并使用DocumentFactory textFactory = new TextDocumentFactory();Editor textEditor = new Editor(textFactory);textEditor.newDocument();textEditor.openDocument();System.out.println("---");// 创建表格文档工厂并使用DocumentFactory tableFactory = new TableDocumentFactory();Editor tableEditor = new Editor(tableFactory);tableEditor.newDocument();tableEditor.openDocument();}// 抽象产品:文档接口public interface Document {void create();void open();}// 具体产品:文本文档public static class TextDocument implements Document {@Overridepublic void create() {System.out.println("创建文本文档");}@Overridepublic void open() {System.out.println("打开文本文档,显示文本内容");}}// 具体产品:表格文档public static class TableDocument implements Document {@Overridepublic void create() {System.out.println("创建表格文档");}@Overridepublic void open() {System.out.println("打开表格文档,显示表格内容");}}// 抽象工厂:文档工厂接口public interface DocumentFactory {Document createDocument();}// 具体工厂:文本文档工厂public static class TextDocumentFactory implements DocumentFactory {@Overridepublic Document createDocument() {return new TextDocument();}}// 具体工厂:表格文档工厂public static class TableDocumentFactory implements DocumentFactory {@Overridepublic Document createDocument() {return new TableDocument();}}// 编辑器类(使用产品的客户端)public static class Editor {private DocumentFactory factory;// 注入工厂public Editor(DocumentFactory factory) {this.factory = factory;}// 新建文档public void newDocument() {Document doc = factory.createDocument();doc.create();}// 打开文档public void openDocument() {Document doc = factory.createDocument();doc.open();}}
}

运行结果

创建文本文档
打开文本文档,显示文本内容
---
创建表格文档
打开表格文档,显示表格内容

工厂方法模式的特点

优点:
符合开闭原则:新增产品时只需添加对应的具体产品和具体工厂,无需修改原有代码
解耦创建与使用:客户端只需关心抽象产品和抽象工厂,无需知道具体实现
多态性:通过不同工厂创建不同产品,客户端可透明地使用不同产品
缺点:
类数量增加:每增加一个产品,通常需要新增一个具体产品类和一个具体工厂类
复杂度提高:相比简单工厂模式,引入了更多的抽象和接口
与简单工厂模式的区别:
简单工厂:由一个工厂类负责所有产品的创建,新增产品需修改工厂类(违反开闭原则)
工厂方法:每个产品由对应的工厂创建,新增产品只需新增工厂(符合开闭原则)

工厂方法模式的应用场景

类库设计:
框架需要提供扩展点时,如 Java 集合框架中的Collection接口的iterator()方法(工厂方法),由具体集合类(如ArrayList、HashSet)实现
日志框架:
不同日志实现(如 Log4j、SLF4J)可通过工厂方法模式切换,客户端面向抽象日志接口编程
数据库访问:
不同数据库(MySQL、Oracle)的连接创建,可通过ConnectionFactory的不同实现类完成
插件系统:
支持插件扩展的系统,每个插件对应一个工厂,通过工厂方法创建插件实例
GUI 工具包:
跨平台 GUI 工具包中,按钮、文本框等组件的创建由对应平台的工厂实现(如 WindowsFactory、MacFactory)

工厂方法模式是创建型模式中应用最广泛的模式之一,它通过将对象创建延迟到子类,实现了创建逻辑的灵活扩展,是框架设计中常用的模式

http://www.dtcms.com/a/598567.html

相关文章:

  • 国外网站会让国内人做吗ts431p 做网站
  • 酒店网站制作公司企业网站要怎么建设
  • 微信开发网站制作宣传片拍摄报价明细
  • 鹤山市住房和城乡建设局网站深圳做网页
  • LayUI基础入门
  • 56_AI智能体运维部署之实战指南:编写生产级docker-compose部署脚本
  • 公司制作一个网站价格全屋定制一般多少钱
  • 做网站为什么要租服务器广西来宾网站网站建设
  • 制作免费网站微信公众号开发流程图
  • K8S Base: CrashLoopBackOff
  • 《Python 小程序编写系列》(第三部):简易文件批量重命名工具
  • 建设信息门户网站的条件广州设计网站公司
  • 国内做网站的大公司有哪些歌手投票网站怎么做
  • 【系统分析师】2025年下半年真题:案例分析-答案及详解(回忆版)
  • 关系数据库小测练习笔记(1)
  • 门源县电子商务网站建设公司在线短网址生成工具
  • 河南商务学校网站建设污染网站代码
  • 毕业设计做一个网站怎么做网站模板双语
  • 阿里个人网站自动建站网站源码
  • c语言16:结构体对齐,从原理到大小计算
  • 模板免费网站wordpress手机底部导航
  • 移动通信网络建设实验4:5G基站设备小区配置与开通
  • 咖啡厅网站开发目标谁做的四虎网站是多少钱
  • geotools加载tif 无法关闭tif的流导致tif文件无法删除问题
  • SDK MicroBlaze ELF文件大小分析
  • 学校的网站如何建设方案哈尔滨seo关键词排名
  • 知名企业网站分析 比较评估重庆平台网站建设企业
  • vs做网站如何放背景图流量平台有哪些
  • 浅谈分页偏移量公式:为什么是 `(pageNum - 1) * pageSize`?
  • 解决方案网站排名第三方平台做网站网站