设计模式:策略模式

来源:互联网 发布:淘宝商品详情图做法 编辑:程序博客网 时间:2024/06/05 18:36

策略模式是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("中等卡结账");    }}

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

0 0
原创粉丝点击