策略模式:定义的固定的接口并有一系列不同类型的具体实现,能够在程序中动态使用这些具体的实现。
策略模式常与代理模式、工厂模式一起使用,以实现策略之间的灵活切换。
基础类/接口:
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());
}
分享到:
相关推荐
设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...
Java 设计模式之策略模式与状态模式 策略模式是 Java 中的一种设计模式,它主要用于解决系统与第三方接口进行数据交互的问题。当系统需要与多种格式的数据进行交互时,使用策略模式可以很好地解决这个问题。例如,...
博客文章《设计模式之策略模式》中可能提供了策略模式的实例代码,通过一个实际的问题(例如排序数组)来展示如何应用策略模式。在代码中,可能会有如下结构: - 定义一个`SortStrategy`接口,包含`sort()`方法。 -...
在Android应用开发中,设计模式是一种重要的编程范式,它为解决特定问题提供了标准的解决方案。今天我们将深入探讨其中的一种——策略模式。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java...
在给定的"设计模式之策略模式源码"工程中,我们可以看到通过一个简单的收银系统来展示策略模式的应用。收银系统是一个常见的业务场景,其中可能涉及多种结算策略,如折扣、满减、会员优惠等。通过策略模式,我们可以...
通过阅读博文《设计模式之策略模式》(链接:https://dada-fangfang.iteye.com/blog/1021182),我们可以深入理解策略模式的概念、实现方式以及如何在实际项目中应用。文章中可能会包含具体的代码示例,帮助我们更好...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,有时我们需要根据不同的场景或条件选择不同的算法或行为。策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行...
在实际开发中,理解和应用设计模式通常需要结合具体的源码进行学习。在提供的链接中,可能包含了作者对这两种模式的实践案例或者详细解释。源码分析可以帮助我们更好地理解如何在实际项目中运用这些模式。 同时,...
5. **应用场景**:策略模式常用于游戏规则的设定、排序算法的选择、购物车结算策略等场景,任何需要在运行时切换不同算法的地方都适用。 6. **实例分析**:文件名`MenuStrategy`可能是一个关于餐厅菜单的案例,不同...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Android开发中,策略模式的应用可以帮助我们更好地实现灵活性和可扩展性,使得代码结构更清晰,易于维护。下面我们将详细探讨策略模式的原理、如何...
在策略模式中,有三个主要角色:策略接口(Strategy Interface)、具体策略类(Concrete Strategy Classes)和上下文(Context)。策略接口定义了所有支持的算法的公共接口,这样上下文就可以通过这个接口来调用这些...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常用于替换硬编码的条件语句,使代码更加灵活、可扩展和易于维护。下面我们将详细探讨策略模式的核心概念、实现方式以及在实际...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...
在这个"JAVA设计模式demo之策略模式"的示例中,你可能会看到以下的代码结构: 1. **策略接口**:`Strategy.java` ```java public interface Strategy { void execute(); } ``` 这个接口定义了一个通用的行为...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...
策略模式和单例模式是软件设计中两种非常重要的设计模式,它们在实际开发中有着广泛的应用。在这篇文章中,我们将深入探讨这两种模式的核心概念、实现方式以及如何在实际项目中运用。 策略模式是一种行为设计模式,...
在这个"设计模式 之 策略模式 使用c#实现"的案例中,我们将探讨如何在上传收银系统这样的实际场景中应用策略模式。 首先,我们需要理解策略模式的核心概念:策略(Strategy)接口定义了一族算法,实现了策略接口的...