策略模式
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
用来解决 执行流程固定 执行的结果由于提供了不同的策略而不同
public abstract class People { private String name; public abstract void callNumber(); public abstract void transact(); public abstract void leave(); } public class TheAged extends People { public void callNumber(){ System.out.println("老年人进来了,开始叫号"); } public void transact() { System.out.println("老人开始在窗口办理业务"); } public void leave(){ System.out.println("老人做完事情后慢慢离开了"); } } public class Stripling extends People { public void callNumber(){ System.out.println("年轻人进来了,开始叫号"); } public void transact() { System.out.println("年轻人开始在窗口办理业务"); } public void leave(){ System.out.println("年轻人做完事情后快速离开了"); } } public class Toff extends People{ public void callNumber(){ System.out.println("富人进来了,开始叫号"); } public void transact() { System.out.println("富人开始在窗口办理业务"); } public void leave(){ System.out.println("富人做完事情后快速离开了"); } } public class Bank { public void profession(People people){ people.callNumber(); people.transact(); people.leave(); } } public class Test { public static void main(String[] args){ Bank bank = new Bank(); TheAged theAged = new TheAged(); bank.profession(theAged); Stripling stripling = new Stripling(); bank.profession(stripling); Toff toff = new Toff(); bank.profession(toff); } } 运行结果: 老年人进来了,开始叫号 老人开始在窗口办理业务 老人做完事情后慢慢离开了 年轻人进来了,开始叫号 年轻人开始在窗口办理业务 年轻人做完事情后快速离开了 富人进来了,开始叫号 富人开始在窗口办理业务 富人做完事情后快速离开了