# gupaoedu-vip-pattern-strategy **Repository Path**: lichaoying/gupaoedu-vip-pattern-strategy ## Basic Information - **Project Name**: gupaoedu-vip-pattern-strategy - **Description**: java架构师_设计模式_策略模式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-08 - **Last Updated**: 2022-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java架构师-设计模式-策略模式 --- ## 策略模式:***用户选择,结果统一*** spring 可参考 InstantiationStrategy --- # 定义 > 策略模式(Strategy Pattern)是指定义了算法家族、分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。 # 应用场景 > 1、假如系统中有很多类,而他们的区别仅仅在于他们的行为不同。 2、一个系统需要动态地在几种算法中选择一种 > 用策略模式实现选择支付方式的业务场景 学院的架构师课程经常会有优惠活动,优惠策略会有很多种可能 如:领取优惠券抵扣、返现促销、拼团优惠。 **可以避免多重分支的if...else...和switch** ## 优点 1、策略模式符合开闭原则。 2、避免使用多重条件转移语句,如if...else...语句、switch语句 3、使用策略模式可以提高算法的保密性和安全性。 ## 缺点 1、客户端必须知道所有的策略,并且自行决定使用哪一个策略类。 2、代码中会产生非常多策略类,增加维护难度。