策略模式

一、定义

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

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

二、实际应用

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

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

相关推荐
张小姐的猫3 天前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
笨拙的老猴子9 天前
小明学架构师的第七课:策略模式:告别if-else的选择困难症
系统架构·策略模式
肖爱Kun10 天前
C++设计策略模式
开发语言·c++·策略模式
折哥的程序人生 · 物流技术专研11 天前
Java 23 种设计模式:从踩坑到精通 | 番外:策略 vs 模板方法 —— 组合与继承的终极对决
java·策略模式·java面试·comparator·模版方法模式·java设计模式·从踩坑到精通
折哥的程序人生 · 物流技术专研11 天前
Java 23 种设计模式:从踩坑到精通 | 番外:状态 vs 策略 —— if-else 消除的两条路,你走对了吗?
java·spring·状态模式·策略模式·java面试·java设计模式·从踩坑到精通
ttod_qzstudio13 天前
【软考设计模式】策略模式:算法族的封装与动态切换精讲
设计模式·策略模式
儒雅的名14 天前
GoF设计模式——策略模式
设计模式·bash·策略模式
折哥的程序人生 · 物流技术专研14 天前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
在水一缸15 天前
拒绝被打扰:深度解析 macOS 进程守护与“反自动启动”攻防战
macos·策略模式·用户体验·进程守护·自动启动·系统权限
折哥的程序人生 · 物流技术专研16 天前
第3篇:手写促销策略引擎(满减、打折、立减)
java·设计模式·策略模式·开闭原则·编程实战·扩充系列·促销引擎