public class Client {
public static void main(String[] args) {
Strategy strategy =new BOLLStrategy();
Trader trader = new FundTrader();
trader.setStrategy(strategy);
trader.buy();
}
}
public interface Strategy {
String usingStrategy();
}
public class BOLLStrategy implements Strategy {
@Override
public String usingStrategy() {
return "BOLL";
}
}
public class BVEPSStrategy implements Strategy {
@Override
public String usingStrategy() {
return "BVEPSS";
}
}
public abstract class Trader {
protected Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public abstract void buy();
}
public class FundTrader extends Trader {
@Override
public void buy() {
System.out.println("基本面派:"+this.strategy.usingStrategy());
}
}
public class TechTrader extends Trader{
@Override
public void buy() {
System.out.println("技术面派:"+this.strategy.usingStrategy());
}
}