当晚

导航

【设计模式】策略模式

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());
    }
}

 

posted on 2018-08-20 18:22  当晚  阅读(119)  评论(0编辑  收藏  举报