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());
        }
    }
  • 相关阅读:
    二分查找
    「数学」二次函数中项系数大小与图像的关系
    「数学」夹角公式
    「CF80A」Panoramix's Prediction
    「Luogu P6101」[EER2]出言不逊
    「数学」三角函数公式以及部分证明
    「Luogu P6069」[MdOI2020] Group
    「CF80B」Depression
    「数学」Menelaus定理与Ceva定理
    「AT1175」ニコニコ文字列
  • 原文地址:https://www.cnblogs.com/xdsux/p/9507174.html
Copyright © 2011-2022 走看看