版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chennai1101/article/details/84858859
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结
策略模式定义了算法族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。
结构图
交通策略(TrafficStrategy
)。
public interface TrafficStrategy{
void run();
}
实现三种交通策略,开车(CarStrategy
)、公交(BusStrategy
)和自行车(BicycleStrategy
)。
public class CarStrategy implements TrafficStrategy{
@Override
public void run() {
System.out.println("buy car");
}
}
public class BusStrategy implements TrafficStrategy{
@Override
public void run() {
System.out.println("buy bus");
}
}
public class BicycleStrategy implements TrafficStrategy{
@Override
public void run() {
System.out.println("buy bicycle");
}
}
人们(People
)上班时可以采用不同的交通策略(TrafficStrategy
)。
public class People {
private String name;
public People(String name) {
this.name = name;
}
public void gotoWork(ITrafficStrategy strategy) {
System.out.print(name + " goto work ");
strategy.run();
}
}
运行
public static void main(String[] args) {
People jack = new People("Jack");
jack.gotoWork(new CarStrategy());
People mike = new People("Mike");
mike.gotoWork(new BusStrategy());
People lily = new People("Lily");
lily.gotoWork(new BicycleStrategy());
}
输出
Jack goto work buy car
Mike goto work buy bus
Lily goto work buy bicycle
相关文章
Java 设计模式之策略模式
Java 设计模式之观察者模式
Java 设计模式之装饰者模式
Java 设计模式之工厂方法模式
Java 设计模式之抽象工厂模式
Java 设计模式之单例模式