`
alex_gao
  • 浏览: 80991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

应用设计模式之策略模式(Context)

 
阅读更多

策略模式:定义的固定的接口并有一系列不同类型的具体实现,能够在程序中动态使用这些具体的实现。

策略模式常与代理模式、工厂模式一起使用,以实现策略之间的灵活切换。

 

基础类/接口:

 

package dp;

public abstract class AbstractDao {
	
	public abstract Object getById();
	
	public void saveEntity(){
		System.out.println("Save entity main...");
	}
}

 实现1(hibernate):

 

package dp;

public class HibernateDao extends AbstractDao {

	@Override
	public Object getById() {
		return new String("Hibernate entity...");
	}

}

 实现2(ibatits):

 

package dp;

public class IbatitsDao extends AbstractDao {

	@Override
	public Object getById() {
		return new String("Ibatits entity...");
	}
}

 与静态代理模式结合,使用context实现对策略的切换:

 

package dp.stratagem;

import dp.AbstractDao;

/**
 * @author alex
 *
 */
public class StratagemContext {
	
	private AbstractDao dao;
	
	public StratagemContext(AbstractDao dao){
		this.dao = dao;
	}
	
	public Object getObject(){
		return dao.getById();
	}
}

Client中应用策略:

	public static void testStratagemContext(){
//		StratagemContext context = new StratagemContext(new HibernateDao());
		StratagemContext stratagem = new StratagemContext(new IbatitsDao());
		System.out.println(stratagem.getObject());
	}
分享到:
评论

相关推荐

    设计模式之策略模式 鸭子问题

    设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...

    55-Java设计模式之策略模式与状态模式1

    Java 设计模式之策略模式与状态模式 策略模式是 Java 中的一种设计模式,它主要用于解决系统与第三方接口进行数据交互的问题。当系统需要与多种格式的数据进行交互时,使用策略模式可以很好地解决这个问题。例如,...

    设计模式之策略模式

    博客文章《设计模式之策略模式》中可能提供了策略模式的实例代码,通过一个实际的问题(例如排序数组)来展示如何应用策略模式。在代码中,可能会有如下结构: - 定义一个`SortStrategy`接口,包含`sort()`方法。 -...

    android应用开发设计模式之-策略模式

    在Android应用开发中,设计模式是一种重要的编程范式,它为解决特定问题提供了标准的解决方案。今天我们将深入探讨其中的一种——策略模式。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java...

    设计模式之策略模式源码

    在给定的"设计模式之策略模式源码"工程中,我们可以看到通过一个简单的收银系统来展示策略模式的应用。收银系统是一个常见的业务场景,其中可能涉及多种结算策略,如折扣、满减、会员优惠等。通过策略模式,我们可以...

    设计模式之策略模式(附demo)

    通过阅读博文《设计模式之策略模式》(链接:https://dada-fangfang.iteye.com/blog/1021182),我们可以深入理解策略模式的概念、实现方式以及如何在实际项目中应用。文章中可能会包含具体的代码示例,帮助我们更好...

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

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

    java设计模式之策略模式与模板模式

    在实际开发中,理解和应用设计模式通常需要结合具体的源码进行学习。在提供的链接中,可能包含了作者对这两种模式的实践案例或者详细解释。源码分析可以帮助我们更好地理解如何在实际项目中运用这些模式。 同时,...

    设计模式-策略者

    5. **应用场景**:策略模式常用于游戏规则的设定、排序算法的选择、购物车结算策略等场景,任何需要在运行时切换不同算法的地方都适用。 6. **实例分析**:文件名`MenuStrategy`可能是一个关于餐厅菜单的案例,不同...

    设计模式在android中的应用之2,策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Android开发中,策略模式的应用可以帮助我们更好地实现灵活性和可扩展性,使得代码结构更清晰,易于维护。下面我们将详细探讨策略模式的原理、如何...

    设计模式之策略模式(Strategy Pattern)

    在策略模式中,有三个主要角色:策略接口(Strategy Interface)、具体策略类(Concrete Strategy Classes)和上下文(Context)。策略接口定义了所有支持的算法的公共接口,这样上下文就可以通过这个接口来调用这些...

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

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

    java设计模式之策略模式实现源码

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...

    设计模式之策略模式源码(c#实现)

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

    JAVA设计模式demo之策略模式

    在这个"JAVA设计模式demo之策略模式"的示例中,你可能会看到以下的代码结构: 1. **策略接口**:`Strategy.java` ```java public interface Strategy { void execute(); } ``` 这个接口定义了一个通用的行为...

    Java 设计模式 策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...

    设计模式——策略模式 & 单例模式

    策略模式和单例模式是软件设计中两种非常重要的设计模式,它们在实际开发中有着广泛的应用。在这篇文章中,我们将深入探讨这两种模式的核心概念、实现方式以及如何在实际项目中运用。 策略模式是一种行为设计模式,...

    设计模式 之 策略模式 使用c#实现

    在这个"设计模式 之 策略模式 使用c#实现"的案例中,我们将探讨如何在上传收银系统这样的实际场景中应用策略模式。 首先,我们需要理解策略模式的核心概念:策略(Strategy)接口定义了一族算法,实现了策略接口的...

Global site tag (gtag.js) - Google Analytics