如果在适合用策略模式的情况下用简单工厂模式,如果新增加策略就要修改工厂类,而这个可能会导致其他错误和比较繁琐,而如果使用了策略模式,只要将新增加的策略当做参数传递到Context类中即可。 用途不一样 工厂是创建型模式,它的作用就是创建对象; 策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为; 关注点不一样 一个
}// 简单工厂:根据类型获取对应策略publicclassPaymentStrategyFactory{publicstaticPaymentStrategygetStrategy(String type){returnswitch(type.toLowerCase()) {case"wechat"->newWeChatPay();case"alipay"->newAliPay();case"bankcard"->newBankCardPay();default->thrownewIllegalArgumentException("不支持的请款方式...
简单工厂模式 主要角色 工厂:负责实现创建所有实例的内部逻辑,并提供一个外界调用的方法,创建所需的产品对象。 抽象产品:负责描述产品的公共接口 具体产品:描述生产的具体产品。 具体案例 案例说明:工厂生产交通工具,有自行车、汽车、火车 抽象产品:Vehicle .java,和上一个案例通用 具体产品:自行车、汽车、火车,和上一...
如果用的是 Spring,可以把每种策略注册为一个 Bean,甚至用注解 + Map 注册策略名称,做到零 if 零 switch。 ✨ 总结一图流:付款方式扩展设计模式选型对比 🧠 类比理解:策略模式就像点外卖时选择不同支付方式,每个选项都是“支付”行为,但具体逻辑不同。 📌 推荐组合: 策略模式 + 简单工厂模式 + 枚举/配...
策略模式,需要我们结合简单工厂模式,更高级地用法可能需要我们掌握Java反射机制。简单工厂模式我们在最早的时候介绍,我们也谈到了一点Java的反射机制。借着学习策略模式的机会,我们顺便复习一下简单工厂模式和反射。 先说说何为策略模式。“策略”我的理解是,对一件事,有不同的方法去做,至于用何种方法取决于我们的选择...
二、工厂模式 主要分为三类 简单工厂模式 工厂方法模式 抽象工厂模式 2.1 简单工厂模式 class Animal: def __init__(self, name): self.name = name def speak(self): pass class Dog(Animal): def speak(self): return "wang!" class Cat(Animal): def speak(self): return "miao!" class AnimalFacto...
书接上文讲的策略+简单工厂模式,本次我们又引入了模板方法,将一些公用的方法定义在抽象类的方法中,不同子类各自实现各自的逻辑。 我们这次还是根据不同的渠道类型进行通知客户(渠道类型有短信sms、邮件email、钉钉dingTalk) 首先就是要有策略接口,接口里面要有一个方法就是通知的方法 ...
简单工厂模式是一种创建型设计模式,它主要涉及对象的创建和实例化。简单工厂模式将对象的创建过程封装在一个工厂类中,客户端只需要向工厂类请求所需的对象即可,而无需了解对象的创建细节。简单工厂模式通常用于创建不同类的对象,因此,可以将简单工厂模式理解为一种“类创建”模式,它可以让客户端更加方便地创建所需的...
简单工厂模式://抽象类abstract class AbsClass{ //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org);} //继承自抽象类class A:AbsClass{ //具体方法:提供一些列的算法操作 public override double acceptCash(string org){ ...
策略模式与简单工厂模式的结合使用 策略模式与简单⼯⼚模式的结合使⽤ Java设计模式中的策略模式(Strategy Patten)定义了⼀组算法,将每个算法都封装起来,并且可使它们之间可以相互替换,在客户端调⽤它们时可以互不影响。策略模式主要由三个⾓⾊组成 1、抽象策略⾓⾊:通常是⼀个接⼝或抽象...