码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2016-07-15 00:03:24      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

策略模式:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换.

举个栗子:我们网购下单的时候,可以选择多种支付方式,如支付宝,网银,微信等,那么支付方式就是一组算法.

代码清单-1 支付策略

/**
 * 支付策略
 */
public interface PayStrategy {
    /** 支付方法 */
    void pay();
}

代码清单-2 微信支付

/**
 * 微信支付方式
 */
public class WeiXinPayStrategy implements PayStrategy {

    public void pay() {
        System.out.println("正在使用微信支付方式...");
    }
}

代码清单-3 支付宝支付

/**
 * 支付宝支付方式
 */
public class AlipayStrategy implements PayStrategy{

    public void pay() {
        System.out.println("正在使用支付宝支付方式...");
    }
}

代码清单-4 网银支付

/**
 * 网银支付方式
 */
public class CyberBankPayStrategy implements PayStrategy {

    public void pay() {
        System.out.println("正在使用网银支付方式...");
    }
}

代码清单-5 消费者

public class Custom {

    public void buy(){
        System.out.println("已购买一双袜子,准备去支付...");
    }
    /** 可以支持多种支付方式 */
    public void pay(PayStrategy payStrategy){
        payStrategy.pay();
    }
}

代码清单-6 场景类

public class Client {
    public static void main(String[] args) {
        Custom custom = new Custom();
        custom.buy();
        //此处可以更换多种支付方式
        PayStrategy weixinPay = new WeiXinPayStrategy();
        custom.pay(weixinPay);
    }
}

运行结果

已购买一双袜子,准备去支付...
正在使用微信支付方式...

  

策略模式

标签:

原文地址:http://www.cnblogs.com/taoyong/p/5671943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!