首页 > 其他分享 >每日随笔——职责链模式

每日随笔——职责链模式

时间:2023-11-25 16:45:02浏览次数:25  
标签:职责 danzi 每日 public zhuren Order 随笔 Leader String

[实验任务一]:财务审批

某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以下的采购单,副总经理可以审批10万元及以下的采购单,总经理可以审批20万元及以下的采购单,20万元以上的采购单需要开职工大会确定。现用职责链模式设计该系统。

实验要求:

1. 提交类图;

2. 提交源代码;

3. 注意编程规范。

 

 

Client
package SC15;

public class Client {
    public static void main(String[] args) {
        Leader zhuren,depthManger,fmanger,manger;
        Order danzi=new Order();
        manger=new manger("总经理");
       fmanger =new fmanger("副总经理",manger);
        depthManger=new depthManger("部门经理",fmanger);
        zhuren=new zhuren("主任",depthManger);
        danzi.setMoney(5000);
        zhuren.approvel(danzi);
        System.out.println("--------—----------------------------");
        danzi.setMoney(50000);
        zhuren.approvel(danzi);
        System.out.println("--------—----------------------------");
        danzi.setMoney(1000000);
        zhuren.approvel(danzi);

    }
}

Order
package SC15;

public class Order {
    private double money;

    public double getMoney() {
        return money;
    }

    public void setMoney(double a) {
        money = a;
    }
}

Leader
package SC15;

public abstract class Leader {
    protected String name;
    protected Leader successor;
    public Leader(String a){name=a;}
    public void setSuccessor(Leader a){
        successor=a;
    }
    public Leader(String a,Leader b){
        name=a;
        successor=b;
    }

    public abstract void approvel(Order dan);
}

zhuren
package SC15;

public class zhuren extends Leader{

    public zhuren(String a) {
        super(a);
    }
    public zhuren(String a,Leader b){
        super(a,b);
    }
    public void approvel(Order dan) {
        if(dan.getMoney()<=10000){
            System.out.println(name+"同意审批这个"+dan.getMoney()+"元的采购单");
        }else {
            System.out.println(name+"不能审批1万元以上的采购单");
            this.successor.approvel(dan);
        }
    }

}

depthManger
package SC15;

public class depthManger extends Leader{

    public depthManger(String a) {
        super(a);
    }
    public depthManger (String a,Leader b){
        super(a,b);
    }
    public void approvel(Order dan) {
        if(dan.getMoney()<=50000){
            System.out.println(name+"同意审批这个"+dan.getMoney()+"元的采购单");
        }else {
            System.out.println(name+"不能审批5万元以上的采购单");
            this.successor.approvel(dan);
        }
    }

}

manger
package SC15;

public class manger extends Leader{

    public manger(String a) {
        super(a);
    }
    public manger (String a,Leader b){
        super(a,b);
    }
    public void approvel(Order dan) {
        if(dan.getMoney()<=200000){
            System.out.println(name+"同意审批这个"+dan.getMoney()+"元的采购单");
        }else {
            System.out.println(name+"不能审批20万元以上的采购单");
            System.out.println("这个"+dan.getMoney()+"元的采购单"+"需要职工大会确定");
        }
    }

}

fmanger
package SC15;

public class fmanger extends Leader{

    public fmanger(String a) {
        super(a);
    }
    public fmanger(String a,Leader b){
        super(a,b);
    }
    public void approvel(Order dan) {
        if(dan.getMoney()<=100000){
            System.out.println(name+"同意审批这个"+dan.getMoney()+"元的采购单");
        }else {
            System.out.println(name+"不能审批10万元以上的采购单");
            this.successor.approvel(dan);
        }
    }

}

 

标签:职责,danzi,每日,public,zhuren,Order,随笔,Leader,String
From: https://www.cnblogs.com/jiacheng-712/p/17843235.html

相关文章

  • Spring MVC学习随笔-Spring MVC介绍
    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅第一章、SpringMVC的引言1.1什么是SpringMVC概念:SpringMVC是基于SpringFramework衍生而来的MVC框架,主要解决了原有MVC框架开发过程中,控制器(Controller)的问题SpringMVC是一个MVC框架MVC......
  • 11.24每日总结
    代码:1000时长7h今日学习了大数据的测试知识,做了一上午,终于完成1MathorCup高校数学建模挑战赛——大数据竞赛练习题:观影大数据分析王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电......
  • 11.24每日总结
    今天完成建民老师布置的大数据测试 1MathorCup高校数学建模挑战赛——大数据竞赛练习题:观影大数据分析王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电影业来说比以往任何时候都......
  • 2023.11.24——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.JavaGUI2.会话跟踪技术明日计划:学习......
  • stm32学习随笔23.11.24
    探索TIM2两个PWM输出视频:B站BV1vb4y1T72LMain.C主函数部分节选#include"stm32f10x.h"                 //Deviceheader#include"Delay.h"#include"OLED.h"#include"TestLED.h"#include"PWM.h"#include"KEY.h"#incl......
  • 11.24每日总结
    今天完成了大数据的测试,这一次没有用hadoop用的是python直接对数据的导入、清洗、分析和可视化展示的操作,下面是所有的代码。 importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorch.utils.dataimportDataLoader,TensorDatasetfromsklearn.mod......
  • 每日总结20231124
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午进行了软件需求分析课上的有关于大数据竞赛的题目的考试,也很顺利的写完了。2、今天下午洗了洗衣服,刷会抖音,睡了一觉,好好休息了一下午。3、今天晚上打算继续完成人机交互的作业。......
  • 11.24每日总结
    importmatplotlibasmatplotlibimportnumpyasnpimportpandasaspdimportseabornassnsfrompandasimportDataFrame,Series#可视化显示在界面#matplotlibinlineimportmatplotlibimportmatplotlib.pyplotaspltfromwordcloudimportSTOPWORDS,......
  • 11.24每日总结
    今天上课完成了大数据的测试。王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电影业来说比以往任何时候都更加重要。所以,他就请来了你(数据分析师)来帮他解决问题,给出一些建议,根据数据......
  • 随笔(三十三)『apache FtpClient操作文件遇到的坑』
    1、需求扫描完文件后把文件放到backup备用目录下2、使用方案用了io流一行行读取用了ftpClient.retrieveFileStream(path)获取流用了ftpClient.changeWorkingDirectory(backupDirPath)切换目录判断是否需要创建备用目录用了ftpClient.rename(sourceFilePath,backupFilePath......