快递管理系统(三)

今天不学习,明天变垃圾。U1S1,讲道理吧,其实不用变

优化的逻辑
前两篇文章,快递的数据都是存在内存里的,一旦断开程序数据就丢失了。总不能一辈子都不断电吧,必须用IO优化掉。

为优化成IO,将快递的存储容器再次改变,由HashMap优化为Properties(Properties也是key-value的一种,不需要指定key和value的数据类型,因为都必须是String)。因此作为int类型的取件码code必须被改造为String。作为value的Express类采用了jackson将其转化为Json字符串的形式。(这里导入了三个与jackson相关的包,用maven添加依赖也可以)。将数据从容器中进行读取以后,再强转为Express对象就可以了。

数据都存在了express.properties文件中,听java工程师舍友说,.properties文件已经不咋用了,那以后再优化掉他(考虑优化为XML吧,据说这个东西还有人用)。数据的output和input使用了转换流,charset使用了gbk实现中文数据的可读

第一步:JavaBean
跟(二)相比,没有做一个标点符号上的改变

import java.util.Objects;

public class Express{
    //快递公司名
    private String company;
    // 快递单号
    private String num;
    // 快递取件码
    private String code;
    // 快递所在柜子号
    private int lockerNumber;

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public int getLockerNumber() {
        return lockerNumber;
    }

    public void setLockerNumber(int lockerNumber) {
        this.lockerNumber = lockerNumber;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Express express = (Express) o;
        return Objects.equals(num, express.num);
    }

    @Override
    public String toString() {
        return "Express{" +
                "company='" + company + '\'' +
                ", num='" + num + '\'' +
                ", code=" + code +
                ", lockerNumber=" + lockerNumber +
                '}';
    }
}

第二步:View
没有改变的必要,能敲出来就是美,界面功能完善又不能吃

import java.util.Scanner;

public class View {
    private Scanner input = new Scanner(System.in);

    public void welcome(){
        System.out.println("欢迎使用xxx快递管理系统");
    }

    public void bye(){
        System.out.println("您已退出xxx快递管理系统,期待您的下次使用");
    }

    public int menu(){
        System.out.println("请输入你要选择的功能序号:1.管理员相关功能;2.用户相关功能;0.退出快递管理系统");
        try{
            String identitySelect = input.nextLine();
            int idSelect = Integer.parseInt(identitySel
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值