除GOF23种设计模式之简单工厂模式

server/2024/10/18 5:25:02/

文章目录

  • 1. 简介
  • 2. 代码
    • 2.1 抽象类:Course.java
    • 2.2 产品A:JavaCourse.java
    • 2.3 产品B:PythonCourse.java
    • 2.4 工厂:CourseFactory.java
    • 2.5 测试:Test.java
  • 3. 心得
  • 参考链接(无)

1. 简介

简单工厂模式(Simple Factory Patern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式
简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
在这里插入图片描述

2. 代码

java_6">2.1 抽象类:Course.java

java">public abstract class Course{public abstract void make();
}

java_13">2.2 产品A:JavaCourse.java

java">public class JavaCourse extends Course {@Overridepublic void make() {System.out.println("制作java课程");}}

java_25">2.3 产品B:PythonCourse.java

java">public class PythonCourse extends Course{@Overridepublic void make() {System.out.println("制作python课程");}}

java_38">2.4 工厂:CourseFactory.java

java">public class CourseFactory {public Course getCourse(String name) {if ("java".equalsIgnoreCase(name)) {return new JavaCourse();} else if ("python".equalsIgnoreCase(name)) {return new PythonCourse();}return null;}
}

java_53">2.5 测试:Test.java

java">public class Test {public static void main(String[] args) {CourseFactory courseFactory = new CourseFactory();Course javaCourse =  courseFactory.getCourse("java");javaCourse.make();Course pyCourse = courseFactory.getCourse("python");pyCourse.make();}
}

运行结果

制作java课程
制作python课程

3. 心得

其实就是通过一个抽象类,多个实现,利用工厂将其整合在一起,这个很简单。比如:我们要做一个计算器,一个含有计算方式的抽象类,四个加减乘除,随后计算器整合起来

参考链接(无)


http://www.ppmy.cn/server/132685.html

相关文章

Unix Standardization and Implementations

Unix标准化 在Unix未制定较为完备的标准时,各个平台的系统调用方式各异,所开发出的应用程序存在可移植性差的特点,因此人们呼吁指定一套Unix标准来规范接口,增加应用程序的可移植性。所谓Unix标准即适用于Unix环境下的一系列函数…

【算法】约瑟夫环问题

据说著名的犹太历史学家Josephus有过以下故事, 罗马人占领乔塔帕特, 39个犹太人与Josephus和他的朋友躲在洞中,其中39个犹太人决定自杀, ,他们的自杀方式是41个人绕成一圈,第一个人报数1,报数到…

M1 Mac打开Jupyter notebook

当我成功安装了Jupyter之后,发现无法通过 jupyter notebook 开始工作。 最初的问题是 zsh command not found 该问题是个路径问题,通过添加PATH环境变量就行了,设置环境变量时需要注意,zshrc和bash_profile中都可以设置&…

基于Matlab的人脸识别系统设计与仿真(含源文

目录 第一章 绪论 1.1 研究背景 1.2 人脸图像识别的应用前景 1.3 本文研究的问题 1.4 识别系统构成 1.5 论文的内容及组织 第二章 图像处理的Matlab实现 2.1 Matlab简介 2.2 数字图像处理及过程 2.2.1图像处理的基本操作 2.2.2图像类型的转换 2.2.3图像…

串口(UART)的FPGA设计(接收与发送模块)

目录 串口基础知识 一、什么是串口?有哪些特点? 二、常见的串口通信协议有哪些?他们有什么区别?

Failed to connect to github.com port 443

git push无法连接443端口 **问题1****方法一:取消代理设置**git命令 其他解决方案1. **设置 Git 使用 HTTP 而不是 HTTPS**2. **检查证书**3. **配置 Git 忽略 SSL 验证(不推荐)**4. **检查代理设置** 问题1 Failed to connect to github.com…

Android/鸿蒙应用的资源配置技巧

HarmonyOS NEXT的发布是一道分界线,它将脱离安卓架构,成为真正独立的操作系统,也被称为“纯血鸿蒙”。 目前已有多家头部企业正加速鸿蒙原生应用开发,包括支付宝、美团、京东、钉钉、小红书、新浪、网易等,覆盖便捷生…

GESP CCF python一级编程等级考试认证真题 2024年9月

一、单选题(每题 2 分,共 30 分) 第 1 题 据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成…