java设计模式:工厂模式

        1:在平常的开发工作中,我们可能会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高系统的可拓展性,今天来简单聊聊工厂模式。

        2:工厂模式是一种创建对象的设计模式,平常我们创建对象可能使用new来创建,使用工厂模式,我们可以通过调用工厂类的静态方法或者实例方法来创建对象。

        抽象产品:主要是父类或者接口,定义了需要实现的方法

        具体产品:实现类,实现父类或者接口的方法

        工厂类:负责创建对象

        3:简单示例:

        抽象产品:定义一个动物接口,里面包含eat()方法:

package test.boot.factory;public interface Animal {void eat();}

        具体产品:定义两个类:Tiger和Sheep分别实现eat()方法

package test.boot.factory;public class Sheep implements Animal{@Overridepublic void eat() {System.out.println("吃草");}
}
package test.boot.factory;public class Tiger implements Animal{@Overridepublic void eat() {System.out.println("吃肉");}
}

         工厂类:

package test.boot.factory;public class AnimalFactory {public static Animal create(String type) {if (type.equals("tiger")) {return new Tiger();} else if (type.equals("sheep")) {return new Sheep();}throw new IllegalArgumentException("Invalid Animal type: " + type);}}

        4:客户端:调用实现

package test.boot.factory;public class Test {public static void main(String[] args) {Animal animal1 = AnimalFactory.create("tiger");animal1.eat();Animal animal2 = AnimalFactory.create("sheep");animal2.eat();}}

        运行结果:

        5:以上为工厂模式的简单示例。合理的使用,可以提高代码的可维护性和拓展性,隐藏了实现的具体细节,客户端只需要调用即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438343.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS ARKit】人脸追踪之挂载虚拟元素

人脸跟踪(Face Tracking)是指将人脸检测扩展到视频序列,跟踪同一张人脸在视频序列中的位置。是论上讲,任何出现在视频中的人险都可以被跟踪,也即是说,在连续视频帧中检测到的人脸可以被识别为同一个人。人脸…

数据结构——用Java实现二分搜索树

目录 一、树 二、二分搜索树 1.二叉树 2.二分搜索树 三、代码实现 1.树的构建 2.获取树中结点的个数 3.添加元素 4.查找元素 (1)查找元素是否存在 (2)查找最小元素 (3)查找最大元素 5.二分搜索…

使用程序设计流程图解析并建立神经网络(不依赖深度学习library)

介绍: ## Flow chart for a simple neural network: #(1)Take inputs 输入 #(2)Add bias (if required) #(3)Assign random weights to input features 随机一个权重 #(4)Run the code for training. 训练集训练 #(5)Find the error in prediction. 找预测损失 #(6…

Linux实验记录:使用RAID(独立冗余磁盘阵列)

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 目录 前言: 备注: 部署磁盘阵…

模拟退火算法(Simulated Annealing, SA)

一、简介 模拟退火算法来源于固体退火原理,是一种基于概率的算法。将固体加温至充分高的温度,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,分子和原子越不稳定。而徐徐冷却时粒子渐趋有…

幻兽帕鲁Linux私服搭建备份迁移指南

幻兽帕鲁Linux私服搭建指南 文档参考 !!!说明:不只是幻兽帕鲁,后续大家想自己搭私服玩别的Steam游戏,大部分内容都可以做一个参考 Linux安装steamcmd Linux开服步骤 游戏配置修改 Youtobe视频教程 配…

阿里十年 “帕鲁” 手把手带你学习 CompletableFuture

阿里十年 “帕鲁” 手把手带你学习 CompletableFuture 文章目录 阿里十年 “帕鲁” 手把手带你学习 CompletableFutureFuture 介绍CompletableFuture 介绍CompletableFuture 常见操作创建 CompletableFuturenew 关键字静态工厂方法 处理异步结算的结果异常处理组合 Completable…

Kafka(九)跨集群数据镜像

目录 1 跨集群镜像的应用场景1.1 区域集群和中心集群1.2 高可用(HA)和灾备(DR)1.3 监管与合规1.4 云迁移1.5 聚合边缘集群的数据 2 多集群架构2.1 星型架构2.2 双活架构2.2 主备架构2.2.1 如何实现Kafka集群的故障转移2.2.1.1 故障转移包括的内容1. 灾难恢复计划2. 非计划内的故…

遗传算法优化最大化效应的某些需求点可不配送的vrptw问题

标题:遗传算法优化最大化效应的某些需求点可不配送的vrptw问题 摘要: 在可不配送的车辆路径配送问题(VRPTW)中,我们面临着优化路径规划以最大化效用的挑战。本文提出了一种基于遗传算法的方法,旨在解决具…

信创发展之路

1、什么是信创 信创,即信息技术应用创新,以前也被称为“安可“(安全可控) 1.1、基本概念 信创产业主要包括四大领域: 基础设施,包括芯片(CPU、GPU等)、存储、服务器、云计算等&…

排序(2)——选择排序

三、选择排序 1.简介 选择排序主要采取的排序策略就是选择,在拿到待排序数组后,程序会一遍遍地遍历未排序部分数组,在每一次的遍历过程中会找到最小的元素,并在遍历完成后换到未排序数组部分的最左侧。如此循环往复,每…

Linux网络编程——网络初识

文章目录 1. 网络协议初识1.1 为什么要有网络协议1.2 协议分层 2. OSI七层模型3. TCP/IP五层(或四层)模型4. 网络传输基本流程5. 以太网通信 1. 网络协议初识 1.1 为什么要有网络协议 早期计算机是独立的,如果要进行数据交互,就…