设计模式:策略模式

策略模式是23种设计模式中的对象行为型的设计模式之一。

策略模式架构

这里写图片描述

策略就是一个对象的行为。

场景

今天发工资啦,去商场购物。

当结账时发现会员卡已经从普通会员到中级会员了。

原本的普通卡9.6 折优惠,现在成为9 折优惠了。

可以想想,这就是一个典型的策略模式,当卡片等级不同,结账的策略可就不同了。

code

public class MainTest{

    public static void main (String[] args) {
        Card card = new Card();
        card.checkout = new OrdinaryCardCheckout();
        card.checkout();

        card.checkout = new MediumCardCheckout();
        card.checkout();
    }

}


//会员卡
class Card{


    //结账策略
    public Checkout checkout;
    //结账
    public void checkout(){
        checkout.checkout();
    }

}

//结账策略
interface Checkout{
    void checkout();
}

//普通卡结账的策略
class OrdinaryCardCheckout implements Checkout{
    public void checkout(){
        System.out.println("普通卡结账");
    }
}

//中等卡结账的策略
class MediumCardCheckout implements Checkout{
    public void checkout(){
        System.out.println("中等卡结账");
    }
}

当要添加一个新的卡片等级时,只需添加个新的策略,而不用更改原来的代码。这样就把耦合度降到非常低了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值