1.工厂模式
//例如,场景中要求能使用多种支付方式 //1.先声明一个工厂 public class PayFactory { public static Payment makePay(String payMode){ Payment bankFactory = null; switch(payMode) { case "PA": bankFactory = new PingAnPay(); break; case "JJ": bankFactory = new JjPay(); break; default: bankFactory = null; } return bankFactory; } } //2. 创建每个对象都要用的接口方法 public interface Payment { String register(); } //3.第一种支付方式来实现,第二种支付方式来实现 public class PingAnPay implements Payment{ @Override public String register() { return "A银行注册"; } } public class JjPay implements Payment{ @Override public String register() { return "B银行注册"; } } //4.使用过程中的调用 public static void main(String[] args) { String bankType = "PA"; Payment payment = PayFactory.makePay(bankType); System.out.println(payment.register()); }
2.策略模式
//1.同样编辑一个实现类,但这里有个构造函数能初始化对象,同样将每个对象实现 public class PayCenter { private Payment payment; public PayCenter(String bankType) { switch (bankType){ case "PA": payment = new PingAnPay(); break; case "JJ": payment = new JjPay(); break; default: payment = new PingAnPay(); } } public String register(){ return payment.register(); } } //2.业务代码中就可以直接调用了,减少了需要多了解一个工厂类 public static void main(String[] args) { String bankType = "JJ"; PayCenter payCenter = new PayCenter(bankType); System.out.println(payCenter.register()); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性