策略模式

devtools/2024/12/28 20:54:18/

一、定义 

策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算

法的变化不会影响使用算法的客户。

二、实际应用

当前有一个抽象类 鸭子 (Duck ),其中有叫声(call),外观(dispaly),有n多个个他的实现类,现在要加一个飞行(fly)的方法,可是他的实现类中飞行方式主要分为能飞和不能飞两种,直接实现这个方法、或者实现飞行的抽象类,有大量重复代码。

   可以将飞行和叫声的方法抽出来,分别创建接口Fly,Cell,然后分别实现他们,再将Fly和Cell作为 Duck 的变量。


http://www.ppmy.cn/devtools/146201.html

相关文章

git revert

git revert 是 Git 中的一个命令,用于创建一个新的提交,该提交会撤销(或“反转”)之前某个特定提交所做的更改。这个命令非常有用,因为它允许你在不改变项目历史的情况下,撤销某个提交的更改效果。 git re…

【乐企文件生成工程】根据特定要素动态选择需要生成的发票板式文件实现

乐企版式文件生成工程,涉及到多个票种,不乏特殊票种的生成,如果每个特殊票种都单独写逻辑,那整个代码写起来体量就不得了,如何实现代码逻辑的同时也更优雅的实现代码扩展性呢,您接着往下看。 使用设计模式 工厂模式 1、定义接口InvoiceFileService public interface Inv…

2025.01.15python商业数据分析

# # 一、 导入项目 import pandas as pd# # # 文件路径为python文件位置下的相对路径 dwx pd.read_excel("电商案例数据及数据说明/驱虫剂市场/电蚊香套装市场近三年交易额.xlsx", ) fmfz pd.read_excel("电商案例数据及数据说明/驱虫剂市场/防霉防蛀片市场近…

StarRocks 排查单副本表

文章目录 StarRocks 排查单副本表 方式1 查询元数据,检查分区级的副本数方式2 SHOW PARTITIONS命令查看 ReplicationNum修改副本数命令 StarRocks 排查单副本表 方式1 查询元数据,检查分区级的副本数 # 方式一 查询元数据,检查分区级的副…

详解VHDL如何编写Testbench

1.概述 仿真测试平台文件(Testbench)是可以用来验证所设计的硬件模型正确性的 VHDL模型,它为所测试的元件提供了激励信号,可以以波形的方式显示仿真结果或把测试结果存储到文件中。这里所说的激励信号可以直接集成在测试平台文件中,也可以从…

bash脚本观察程序状态

script % touch proc.sh script % chmod 755 proc.shproc.sh: #!/usr/bin/env bashSTATUS0if [ -z $1 ];then # 检查是否传了PID参数echo please enter a PIDexit 1 fiecho watching PID $1while [ $STATUS -eq 0 ] # 如果是我们初始的值,说明程序的状态还没有改变…

JAVA代理模式和适配器模式

文章目录 Java 代理模式和适配器模式代理模式(Proxy Pattern)适配器模式(Adapter Pattern)代理模式和适配器模式的区别 代理模式的使用举例静态代理实现:用代理模式记录方法调用日志动态代理实现:使用 Java 动态代理记录方法调用日…

LabVIEW软件项目设计方案如何制定

制定LabVIEW软件项目设计方案需要综合考虑需求分析、架构设计、功能模块划分和时间预算等多个方面,确保项目开发过程高效、可控且最终满足目标要求。以下是一个详细的制定流程: ​ 1. 需求分析 目标定义:明确项目的目标,例如数据采…