大话设计模式笔记(二)——商品促销 策略模式

本文主要探讨了在商品促销场景下如何运用策略模式。通过对比简单工厂模式,阐述了策略模式如何降低代码耦合度,使得调用类只需关注策略环境类。文中展示了策略模式的UML图,给出了具体实现包括`Context`、`SaleStrategy`、`PercentSaleStrategy`(折扣促销)和`FullSendSaleStrategy`(满减促销)。总结中强调,策略模式适用于需要在不同时间应用不同业务规则的情况,是对接口编程和封装变化的设计原则体现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章商品促销——策略模式

需求:商品价格计算,并增加折扣条件

工厂模式UML图

在工厂模式中,调用端代码会通过折扣工厂类生成折扣对象,折扣对象调用折扣方法。这里关联了两个类,工厂类和抽象折扣类。

策略模式UML图


在策略模式中,会在策略环境类的构造器中完成折扣类的初始话,并在策略环境的实现方法调用折扣类的折扣算法。这样调用类只会关联策略环境类。

简单工厂模式需要的是生成的对象,所以在客户端代码中会存在工厂类和生成类,而策略模式关注的是相应算法,它并不关注算法类对象,所以在客户端代码中只会存在context环境类。这样降低代码耦合度。

代码

Context

public class SaleContext {

    private SaleStrategy saleStrategy = null;

    public SaleContext(String saleSelector) {
        switch (saleSelector) {
            case "打9折":
                this.saleStrategy = new PercentSaleStrategy(0.9);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值