策略模式

标签: 设计模式 策略模式
33人阅读 评论(0) 收藏 举报
分类:

理解

对于一组代码,可以再每个方法上实现其功能。或者面向接口编程,在使用的过程中注入其实现,可以看成对一种事物的不同策略

代码demo

场景

我需要实现一个动物,动物狮子可以吃可以叫有四条腿,动物鸟可以吃可以叫有两条腿

代码实现

public interface Legs{
    void hasLegs();
}
public abstract Animal{
    private Legs legs;
    protected void eat(){
        ...
    }
    protected void eat(){
        ...
    }
    protected void quack(){
        ...
    }
    protected void showLegs(){
        legs.hasLegs;
    }
}
public LionLegs implements Legs{
    //狮子实现
}
public BirdLegs implements Legs{
    //鸟实现
}
public Lion extends Animal{
    public Lion(){
        legs=new LionLegs();
    }
}

用法

当我使用不同的“脚”的策略的时候,我并不需要改变实体类或者是他们的父类,我只需要加入一个实现。所以对于变化频繁的东西来说,使用策略模式可以很容易改变代码实现的方法,而且代码实现的架构并没有发生变化

查看评论

状态模式和策略模式比较

说到策略模式,我们最先想到的就是商店的收银方式:不满100,正常收费;超过100不满300,超过的部分打八折;超过300,全价九折!      解决这个问题最最普通的方法就是大量的If…Else…,而...
  • u010191243
  • u010191243
  • 2015-04-30 16:37:38
  • 2677

设计模式--深度解析策略模式(Strategy Pattern)

前些天网购一本Head First Design Patterns,学习了一下,觉得写的挺好,而且挺有趣的,推荐大家都去买一本,真心不错。在这里我先讲一下,这两天学的,两个常见的设计模式,分别Stra...
  • qq_29282475
  • qq_29282475
  • 2015-12-04 14:17:25
  • 4278

与spring结合的策略模式

策略模式是23种设计模式之一,客户端通过制定多个算法并且封装,使得不同场景可以使用不同的策略算法。使得程序降低了耦合提高代码的复用性。接下来通过一个简单的实例来说明在实战中如何使用(即使是业务逻辑也是...
  • nethackatschool
  • nethackatschool
  • 2017-04-05 18:58:29
  • 2114

策略模式原理及案例分析

策略模式的正式定义为:它定义了一个算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。     这个概念毕竟是对这个模式的高度总结,我们可以先不必了解其含义,看完...
  • RunawaySmallRiver
  • RunawaySmallRiver
  • 2016-08-30 15:12:14
  • 801

三分钟理解“策略模式”——设计模式轻松掌握

策略模式的作用: 1.使用了策略模式后,如果需要增加一种策略,那么只需要创建一个实现了Strategy接口的子类,并重写其中的函数,然后在Context的构造函数中增加这种子类的判断。客户端的代码、C...
  • u010425776
  • u010425776
  • 2015-08-31 11:14:43
  • 1501

大话设计模式—策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。大话设计模式中程杰老师给出的定义是这样的:策略模式(Strategy),定义了...
  • lmb55
  • lmb55
  • 2016-03-23 23:59:47
  • 2124

策略模式(Strategy Pattern)就这么简单

0x00 举个生活中的例子某个大人网站是会员制的,金牌会员购买精神食粮打7折,银牌会员打8折,铜牌会员打9折,铁牌会员不打折。也就是说不同的用户在购买精神食粮的时候结算的价格是不一样的,即使你们买相同...
  • fiendvip
  • fiendvip
  • 2016-04-12 21:18:35
  • 5224

策略模式学习案例

策略模式:顾名思义就是提供一系列策略,在不同的情形下可以选择不同的策略。 官方定义:定义了算法簇,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 学习源代码下载 案例:...
  • hailushijie
  • hailushijie
  • 2013-02-25 23:33:26
  • 1237

设计模式_改进策略模式_策略模式与简单工厂模式结合(Java)

上一篇我们介绍了《设计模式_策略模式(Java)》,同时讲述了策略模式与状态模式的区别,如果仔细查看代码或者类图,我们会发现策略模式在一定程度上是存在缺陷的,Client(Test类)必须知道所有的策...
  • tb3039450
  • tb3039450
  • 2016-09-22 20:00:53
  • 1203

话说状态模式和策略模式

 图1:策略模式类图      图2:状态模式类图 熟悉uml类图的朋友,可以看出,策略模式的类图和状态模式的类图实现是很相似的,这也是为什么设计模式中,我们把这两种模式比喻成为孪生兄弟,很多时候,我...
  • turkeyzhou
  • turkeyzhou
  • 2008-08-18 23:53:00
  • 12171
    个人资料
    等级:
    访问量: 688
    积分: 81
    排名: 155万+
    文章存档