zoukankan      html  css  js  c++  java
  • Java 策略模式

    策略模式

    策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

    这个模式涉及到三个角色
    • 环境角色

      • 引用者

    • 抽象策略角色

      • 通常由一个接口或者抽象类实现

    • 具体策略

      • 包装相关的算法或者行为

    例子

    我们模拟一下 两位学生在课间中的行为

    Student 类 (引用者)

    public class Student {
        
        // 具体策略对象
        private Action action;
    ​
        public Student( Action action){
            this.action = action;
        }
    ​
        // 学生的行为
        public void studentAction(){
            action.action();
        }
        
    }

    Action 接口 (抽象策略角色)

    public interface Action {
        //学生的动作
        void action();
    }
    ​

    SleepAction类(具体策略)

    public class SleepAction implements Action {
        @Override
        public void action() {
            System.out.println("正在睡觉......");
        }
    }
    ​

    PlayAction类 (具体策略)

    public class PlayAction implements Action {
        @Override
        public void action() {
            System.out.println("正在玩耍.......");
        }
    }

    Test类(测试类)

    public class Test {
        public static void main(String[] args) {
            // 睡觉的行为
            Action sleep = new SleepAction();
            // 玩的行为
            Action play = new PlayAction();
            
            //小明
            Student xiaoming = new Student(sleep);
            xiaoming.studentAction();
            //小明明
            Student mingming = new Student(play);
            mingming.studentAction();
        }
    }

    结果

    正在睡觉......
    正在玩耍.......
  • 相关阅读:
    Servlet梳理一
    String和StringBuffer的区别
    谈谈面对将要来到的第一份工作
    shell grep文本搜索
    Shell cut分割
    python的学习之路:计算
    web端和手机端测试有什么不同
    让TortoiseGit记住帐号密码方法
    操纵IE,模拟用户登录
    MVC路由配置.html不能识别
  • 原文地址:https://www.cnblogs.com/oukele/p/10678661.html
Copyright © 2011-2022 走看看