zoukankan      html  css  js  c++  java
  • 【设计模式】策略模式

    1.简介给一个链接: 策略模式

    2.学习的时候自己按理解写了一个测试类,方便理解:

    1.每个员工都有不同的工作报告。

    2.提取工作报告接口作为策略,每个员工类对该策略有不同实现

    3.主管持有工作报告,并可以查看任何员工的工作报告。

    package com.xdusx.java.strategy;
    
    public class Strategy {
        
        //策略模式
        public static void main(String[] args) {
            
            //运行时,由主管点名的员工确定报告工作的内容
            new Man().getEnpReport(new Enp1());
        }
    
    }
    
    interface GetWorkStatement {
        //定义一个策略,该策略返回员工的工作报告,每个员工有不同的工作内容,故每个员工对策略有不同的实现
        String getWorkStatement();
    }
    
    //第一类员工
    class Enp1 implements GetWorkStatement {
        public String getWorkStatement() {
            return "enp1 status";
        }
    }
    
    //第二类员工
    class Enp2 implements GetWorkStatement {
        public String getWorkStatement() {
            return "enp2 status";
        }
    }
    
    //第三类员工
    class Enp3 implements GetWorkStatement {
        public String getWorkStatement() {
            return "enp3 status";
        }
    }
    
    //主管,负责指定一个员工抽查工作报告。抽查的员工在运行时决定,工作报告的内容由员工自行决定
    class Man{
        
        void getEnpReport(GetWorkStatement enpReport){
            System.out.println(enpReport.getWorkStatement());
        }
    }
  • 相关阅读:
    清除浮动解决父元素高度塌陷问题
    canvas画动图
    vue实现列表的循环滚动
    localStorage读写操作
    angularJS快速入门
    python模块
    python函数式编程
    python高级特性
    Flask 快速入门
    JQuery Ajax
  • 原文地址:https://www.cnblogs.com/xdsux/p/9507174.html
Copyright © 2011-2022 走看看