设计模式——命令模式14

命令模式:用构造函数将 命令实现者 传递给 调用者。
例如下面 小贩进货
设计模式,一定要敲代码理解
在这里插入图片描述

命令抽象

/**
 *文具
 * */
public interface Stationery {
    void make();
}

命令实现类

public class Pencil implements Stationery{
    private Producer producer;

    public Pencil(Producer producer) {
        this.producer = producer;
    }

    @Override
    public void make() {
        producer.doProduce();
    }
}
public class WatercolorPen implements Stationery {
    private Producer producer;

    public WatercolorPen(Producer producer) {
        this.producer = producer;
    }

    @Override
    public void make() {
        producer.doProduce();
    }
}

实现者抽象

public interface Producer {
    void  doProduce();
}

实现者具体

public class ChenGuang implements Producer {
    @Override
    public void doProduce() {
        System.out.println("晨光品牌——————值得信赖");
    }
}
public class Deil implements Producer {
    @Override
    public void doProduce() {
        System.out.println("得力品牌——————值得信赖");
    }
}

调用者

public class Hawker {
    private List<Stationery> stationeries=new ArrayList<>();
    public void stock(Stationery item){
        stationeries.add(item);
    }
    public  void all(){
        for (Stationery item: stationeries){
            item.make();
        }
    }
}

测试与结果

public class Main {
    public static void main(String[] args) {
         Stationery s1=new Pencil(new Deil());
         Stationery s2=new WatercolorPen(new ChenGuang());

         //小贩去进货
           Hawker hawker=new Hawker();
           hawker.stock(s1);
           hawker.stock(s2);
           //查看商品
            hawker.all();
    }
}
得力品牌——————值得信赖
晨光品牌——————值得信赖

总结

核心要素 调用者, 命令, 命令实现者。 调用者调用命令,其实是委托给命令实现者,满足单一职责,便于扩展。

代码下载

代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值