java 策略模式 给一个示例
时间: 2023-03-11 21:34:56 浏览: 61
策略模式是一种模式,它使得您可以封装可以互换的算法,并在运行时选择实现。例如,假设您有一个购物网站,它提供不同类型的用户(如普通用户,VIP用户,企业用户)。您可以使用策略模式来实现不同类型用户的不同折扣算法,并在运行时根据实际用户类型选择正确的折扣算法。
相关问题
java 策略模式 示例
好的,关于 Java 的策略模式示例,我可以给您一个简单的例子:比如,我们需要设计一个程序,用于计算不同商品的优惠价格,那么我们就可以使用策略模式来实现。首先定义一个接口,里面定义一个抽象方法用于计算价格,然后编写不同的实现类,分别代表不同的优惠策略,比如满100元减20元,满200元减50元等等,最后在程序中根据不同的条件选择具体的策略,来计算最终价格。这样,我们就可以实现一个灵活且可扩展性较高的优惠计算程序了。
java策略模式示例代码
以下是Java中策略模式的示例代码:
首先,我们定义一个策略接口`Strategy`,其中包含一个方法`doOperation`:
```java
public interface Strategy {
int doOperation(int num1, int num2);
}
```
然后,我们实现两个具体的策略类`OperationAdd`和`OperationSubtract`,分别实现了`Strategy`接口中的`doOperation`方法:
```java
public class OperationAdd implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
public class OperationSubtract implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
```
接下来,我们定义一个`Context`类,它包含一个`Strategy`接口类型的成员变量`strategy`,并提供了一个`executeStrategy`方法,用于执行具体的策略:
```java
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public int executeStrategy(int num1, int num2) {
return strategy.doOperation(num1, num2);
}
}
```
最后,我们可以使用`Context`类来执行具体的策略:
```java
public class StrategyPatternDemo {
public static void main(String[] args) {
Context context = new Context(new OperationAdd());
System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
context = new Context(new OperationSubtract());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
}
}
```
输出结果为:
```
10 + 5 = 15
10 - 5 = 5
```