`
kingbinchow
  • 浏览: 124791 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Strategy -- 策略模式

阅读更多
public interface Strategy {

	public void operation();
}

/**
 * 三条妙计
 */
class BackDoor implements Strategy {

	@Override
	public void operation() {
		System.out.println("找乔国老帮忙");
	}

}

class GivenGreenLight implements Strategy {

	@Override
	public void operation() {
		System.out.println("求吴国太开个绿灯");
	}

}

class BlockEnemy implements Strategy {

	@Override
	public void operation() {
		System.out.println("孙夫人断后");
	}

}


/**
 * 锦囊盛放妙计
 */
class Context implements Strategy{
	private Strategy mStrategy;
	
	public Context(Strategy s){
		mStrategy = s;
	}

	@Override
	public void operation() {
		mStrategy.operation();
	}
	
	
}





/**
		 * 1.策略模式
		 */
		System.out.println("***********1.策略模式***********");
		//生成第一个锦囊
		Context context  = new Context(new BackDoor());
		System.out.println("使用第 1 条妙计:");
		context.operation();
		//生成第二个锦囊
		context  = new Context(new GivenGreenLight());
		System.out.println("使用第 2 条妙计:");
		context.operation();
		//生成第三个锦囊
		context  = new Context(new BlockEnemy());
		System.out.println("使用第 3 条妙计:");
		context.operation();
		System.out.println("");
分享到:
评论

相关推荐

    微信小程序--使用策略模式进行表单验证strategy-master.zip

    本项目"微信小程序--使用策略模式进行表单验证strategy-master.zip"聚焦于如何通过策略模式来优化这一过程。策略模式是一种行为设计模式,允许我们在运行时选择算法或策略,使得代码更加灵活且易于扩展。 首先,...

    sprintboot-strategy-pattern-demo-master.zip

    【标题】"sprintboot-strategy-pattern-demo-master.zip" 是一个使用Spring Boot技术实现的策略模式示例项目,它提供了一种快速理解并应用策略模式的开箱即用的体验。 【描述】"基于springboot做了一个策略模式的...

    Python库 | django-strategy-field-1.1.1.tar.gz

    而`django-strategy-field`是Django生态中的一个实用库,它引入了策略模式(Strategy Pattern)的概念,为Django模型字段提供了灵活的行为管理。本文将深入探讨`django-strategy-field` 1.1.1版本的特性和使用方法。...

    数字化转型之战(winning-strategy-digital-transformation.pdf)

    本文将深入探讨数字化转型的概念、重要性及其实施策略。 #### 二、核心概念:数字化转型的意义 **1. 定义与理解** - **数字化转型**:指利用数字技术从根本上改变业务模式和价值创造的过程,以适应不断变化的市场...

    strategy-demo.zip

    这个"strategy-demo.zip"文件很可能是包含了一个策略模式的示例代码或教程。 策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换。这些算法都属于同一个接口或抽象类,因此可以...

    设计模式专题之(十六)策略模式---设计模式策略模式示例代码(python--c++)

    策略模式的核心结构包含三部分:Context(上下文)、Strategy(策略)接口或抽象类以及ConcreteStrategy(具体策略)类。Context维护一个对Strategy的引用,它使用这个引用调用Strategy接口中定义的操作。...

    设计模式---策略者模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要在不同时间或根据不同条件执行不同算法的情况。策略模式允许我们将算法封装到独立的可互换的策略类中,使得算法的变化...

    strategy-pattern-in-unity

    策略模式在Unity中的应用 策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Unity游戏开发中,这种模式尤其有用,因为它允许我们根据游戏的不同阶段或角色的状态动态地调整其行为逻辑,而无需硬编码...

    01-strategy-pattern

    首先,策略模式的核心组成部分包括上下文(Context)、策略(Strategy)和具体策略 Concrete Strategies。上下文是使用策略的角色,它维持一个对策略对象的引用,并调用策略对象的方法来执行算法。策略是所有具体策略的...

    设计模式--策略模式java例子

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常用于替换硬编码的条件语句,使代码更加灵活、可扩展和易于维护。下面我们将详细探讨策略模式的核心概念、实现方式以及在实际...

    Java 设计模式-策略模式(Strategy)Android讲解

    首先,策略模式由三个主要组成部分构成:上下文(Context)、策略(Strategy)接口和具体策略(Concrete Strategy)。上下文是使用策略的对象,它维护一个对策略的引用,并调用策略的接口来执行算法。策略接口定义了一组...

    走进设计模式之 策略模式(Strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,有时我们需要根据不同的场景或条件选择不同的算法或行为。策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行...

    Strategy-design-pattern-_-model.rar_strategy

    在"Design Pattern - Strategy Design Pattern _ Model"这个主题中,可能包含了对策略模式的深入讲解和实例应用。文件"T23_设计模式_策略模式.ppt"可能是一个演示文稿,详细介绍了策略模式的原理、结构、优缺点以及...

    设计模式系列源码---策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式允许我们将这些算法封装成独立的类,使得它们可以互换,从而提高...

    设计模式-策略模式(Strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许你使用算法族,而无需在代码中硬编码这些算法。通过将算法封装到具有共同接口的独立对象中,策略模式使得你可以根据需要灵活地切换算法,...

    设计模式-策略模式-c++版

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C++中,策略模式主要用于封装一系列算法,并让它们之间可以互相替换,使得算法的变化独立于使用算法的客户。这种模式通常涉及三个主要角色:策略...

    策略(strategy)模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...

    c++设计模式-行为型模式-策略模式

    c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...

    10-create-a-ten-year-strategy-for-your-ciso.zip

    2. **威胁评估**:分析过去和当前的威胁模式,预测未来的威胁趋势。这可能涉及到研究网络犯罪的发展、新的攻击技术以及行业特定的威胁。 3. **风险管理和缓解策略**:确定可能对组织造成重大影响的风险,并制定相应...

    设计模式C++学习之策略模式(Strategy)

    在`Demo1_Strategy`这个示例中,可能包含了多个C++源文件,分别实现了策略模式的不同方面,例如定义了策略接口、具体策略类以及上下文类的实现。通过分析这些源代码,我们可以更深入地理解策略模式的用法和优势。 ...

Global site tag (gtag.js) - Google Analytics