JAVA设计模式 -- 策略模式

本文深入探讨了策略模式的概念和用途,通过面试通知、排序和支付方式等场景展示了策略模式的实现。文章指出,策略模式允许算法族的封装和互换,减少代码耦合,支持开闭原则,方便拓展和单元测试。同时,也提到了策略模式的潜在缺点,如客户端需了解所有策略类并选择适用的策略,以及可能导致大量具体策略类的产生。总结时,作者强调了策略模式在提高代码复用性和降低耦合度方面的优势。
摘要由CSDN通过智能技术生成

策略模式

策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

场景1:HR通知一个面试人员进行面试,通知的方法有两种,短信通知和邮件通知,要设计一个面试人员的类,怎么设计通知这部分的功能,使得HR能够任意选择一种方法通知。

场景2:自己实现一个排序的类,使得输入任意一种类型的数据都可以排序,不仅可以对原始类型进行排序,也可以对自己定义的类进行排序。

场景3:在结账时,客户支付功能,客户可能选择xx宝,x信,信用卡等来支付

以上几种场景的共性都是,要实现一个功能,而功能的需求可能是在变化,随时需要进行拓展,为了实现这种效果,就需要使用到策略模式。

策略模式的一个实现的思想就是,先定义一个接口,在接口有一个或多个事先定义的方法,所有的可拓展的需求都必须实现这个接口中的方法,调用的主体在使用方法时只需要调用接口所对应的方法即可。例子:

// 定义一个Strategy接口,用来储存我们的算法家族
public interface Strategy {
   
    void call(String content);
}

// 定义一个CallByPhone类,实现Strategy接口中的方法
public class CallByPhone implements Strategy {
   

    @Override
    public</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值