设计模式--策略模式【行为型模式】

设计模式的分类

我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类:

  • 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
  • 结构型模式(7 种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式(11 种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

在这里插入图片描述

设计模式系列文章传送门

设计模式的 7 大原则

设计模式–单例模式【创建型模式】

设计模式–工厂方法模式【创建型模式】

设计模式–抽象工厂模式【创建型模式】

设计模式–建造者模式【创建型模式】

设计模式–原型模式【创建型模式】

设计模式–适配器模式【结构型模式】

设计模式–装饰器模式【结构型模式】

设计模式–代理模式【结构型模式】

设计模式–外观模式(门面模式)【结构型模式】

设计模式–桥接模式【结构型模式】

设计模式–组合模式【结构型模式】

设计模式–享元模式【结构型模式】

什么是策略模式

策略模式是一个行为行设计模式,定义了一系列算法,并将每一个算法封装起来做为一个策略类,使的它们之间可以相互替换,策略模式可以让算法独立于客户端。

策略模式的组成部分

  • 上下文类:也叫环境类,它持有一个策略类的引用,通过策略类的方法来执行具体的算法,上下文类会提供一个统一的接口,可以让客户端访问不同的策略。
  • 抽象策略类:定义了一个统一的接口,让不同的策略类实现实现这个接口,从而实现具体的算法。
  • 具体策略类:实现了抽象策略类,并重写了抽象策略类中定义的统一接口,也就是实现了具体的算法,不同的具体策略类有不同的算法实现,它们之间可以相互替换,使得上下文类在运行时可以动态地改变策略。

策略模式案例演示

我们以春节回家购买火车票为案例,我们购买火车票可以选择 12306 官网购票、携程网购票、去哪儿网购票,假设张三、李四、王五分别要从三个客户端来完成买票,我们使用策略模式使用不同客户端买票。

BuyTicketsStrategy(抽象策略类)

BuyTicketsStrategy 买票抽象策略类,定义了买票方法,代码如下:

public interface BuyTicketsStrategy {
   

    //出发地  目的地
    void buyTickets(String user, String startPoint, String destination);

}

BuyTicketsContext(上下文类)

BuyTicketsContext 上下文类,买票上下文类持有了一个买票抽象策略类对象,并调用了买票方法,代码如下:

public class BuyTicketsContext {
   

    //用户
    private String user;

    //出发地
    private String startPoint;

    //目的地
    private String destination;

    //买票策略类
    priv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值