JavaSE基础 (十七)

设计模式

策略者模式 Strategy   ——— 行为型模式

用来解决 执行流程固定 执行结果由于提供不同策略而不同

              银行类
                  profession(人){  人----抽象类 接口(不能产生对象) 传递一个子类对象
                  欢迎用户进来
                  叫号
                  办理
                  离开
                  欢迎您下次再来
                  }
             长者   年轻人  vip
            //按普通设计  可能有问题
              1.三个不同的人类方法名不一致(可以)
              2.银行办理业务的方法写了3个
            //解决上诉所述问题可以在三个人之上创建一个父类
              1.解决桑个人类中相同代码 比如name属性 比如get方法之类
              2.父类定义的三个方法可以是抽象类 解决了子类命名不一致问题 子类执行也不一致
              3.父类可以作为参数传入银行


  //主函数
     public static void main (String[] args){
          Bank bank = new bank ();
          Person p = new Oldman(长者); //父类作为参数
          bank profession(p);//银行欢迎长者来办理业务 调的是子类对象
       }  



 //银行三个方法写成一个
       public class Bank{
       //开门  等待用户进来办理业务
       public void profession(Person person){
       System.out,println(person.getName()+"客户进入银行啦")
       person.callNumber();
       person.transact();
       person.leave();
       }

//抽象类 
       public abstract class Person{
       protected String name;
       public String getName(){
        return this.name;
        }
        //1.进银行叫号
        public abstract void callNumaber();
        //2.去窗口办理
        public abstract void transact();
        //3.办理完毕离开啦
        public abstract void leave();
       }