刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
策略模式是一种在面向对象编程中常用的设计模式,其核心思想是将各种算法策略封装到不同的策略类中,客户端可以根据不同的场景或需求来选择使用不同的策略。在编写策略模式时,通常需要定义一个策略接口或抽象类,然后实现不同的策略类,每个策略类都实现了特定的算法或行为。客户端通过上下文对象来选择使用哪个策略。这种设计使得算法的选择与使用相互独立,提高了代码的灵活性和可复用性。在面试中手写策略模式时,需要明确接口定义、策略类的实现以及上下文对象的使用。
最优回答:
假设我们有一个支付场景,需要实现多种支付方式(如支付宝支付、微信支付等),我们可以使用策略模式来实现。首先定义一个支付策略接口PaymentStrategy,然后实现不同的支付策略类(如AlipayPayment、WechatPayment等)。在支付上下文PaymentContext中,我们可以根据支付场景或需求来选择使用哪个支付策略。以下是简单的代码示例:
// 定义支付策略接口
public interface PaymentStrategy {
void pay(Order order); // 支付方法
}
// 实现支付宝支付策略类
public class AlipayPayment implements PaymentStrategy {
@Override
public void pay(Order order) {
// 使用支付宝支付方式处理订单支付逻辑
}
}
// 实现微信支付策略类
public class WechatPayment implements PaymentStrategy {
@Override
public void pay(Order order) {
// 使用微信支付方式处理订单支付逻辑
}
}
// 定义支付上下文类,根据条件选择使用哪个支付策略
public class PaymentContext {
private PaymentStrategy strategy; // 存储选择的支付策略对象
public PaymentContext(String paymentType) { // 构造函数,根据支付方式选择对应的策略对象进行初始化
if ("alipay".equals(paymentType)) {
this.strategy = new AlipayPayment();
} else if ("wechat".equals(paymentType)) {
this.strategy = new WechatPayment();
} else {
throw new IllegalArgumentException("不支持的支付方式");
}
}
public void doPayment(Order order) { // 执行支付的方法,调用对应的支付策略进行支付处理
strategy.pay(order);
}
}
本文链接:手写一个策略模式;
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
