Java - 策略模式 July 9,2019

 策略模式

在策略模式(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);
    }
}

运行结果:
老年人进来了,开始叫号
老人开始在窗口办理业务
老人做完事情后慢慢离开了
年轻人进来了,开始叫号
年轻人开始在窗口办理业务
年轻人做完事情后快速离开了
富人进来了,开始叫号
富人开始在窗口办理业务
富人做完事情后快速离开了

 

posted @ 2019-07-09 17:41  亿贫如洗杨道长  阅读(2)  评论(0编辑  收藏  举报