Java分层示例 - 青青校网

文件结构如下

f0614
├── dao
│ ├── MemberDao.java
│ └── impl
│     └── MemberDaoImpl.java
├── entity
│ └── Member.java
├── main
│ ├── MenuManager.java
│ └── TestMain.java
└── service
    ├── MemberService.java
    └── impl
        └── MemberServiceImpl.java

entity / Member

package f0614.entity;

public class Member {
    private int id; // 随机生成的用户id
    private String username; // 用户名
    private String password; // 用户密码
    private int integral; // 用户积分
    private int integralConvert; // 待转换积分
    private int coin; // 硬币

	// getter and setter
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getIntegral() {
        return integral;
    }

    public void setIntegral(int integral) {
        this.integral = integral;
    }

    public int getIntegralConvert() {
        return integralConvert;
    }

    public void setIntegralConvert(int integralConvert) {
        this.integralConvert = integralConvert;
    }

    public int getCoin() {
        return coin;
    }

    public void setCoin(int coin) {
        this.coin = coin;
    }
	// 有参构造 方便快速初始化
    public Member(int id, String username, String password, int integral, int integralConvert, int coin) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.integral = integral;
        this.integralConvert = integralConvert;
        this.coin = coin;
    }
	// 无参构造
    public Member() {}
}

dao / MemberDao

package f0614.dao;

public interface MemberDao {
    void register(); // 注册方法
    void integralConvert(); // 将未兑换积分兑换
    void convertIntegral(); // 将积分兑换为硬币
    void selectIntegral(); // 查询剩余积分方法
    void updatePassword(); // 更新密码方法
}

dao / impl / MemberDaoImpl

package f0614.dao.impl;

import f0614.dao.MemberDao;
import f0614.entity.Member;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class MemberDaoImpl implements MemberDao {

    ArrayList<Member> members = new ArrayList<>();
    Scanner input = new Scanner(System.in);
    @Override
    public void register() {
        System.out.print("Username: ");
        String username = input.next();
        System.out.print("Password: ");
        String password = input.next();
        int userId = getUserId();
        System.out.println("Your UserId -> " + userId);
        Member newMember = new Member(userId, username, password, 0, 0, 0);
        members.add(newMember);
        System.out.println("done!");
    }

    @Override
    public void integralConvert() {
        Member result = checkUser();
        if (result != null) {
            System.out.println("您未兑换的积分为 -> " + result.getIntegralConvert());
            System.out.print("是否兑换 (y/N): ");
            char choose = input.next().charAt(0);
            if (choose == 'y') {
                result.setIntegral(result.getIntegral() + result.getIntegralConvert());
                result.setIntegralConvert(0);
                System.out.println("done!");
            }
        } else {
            System.out.println("wrong userid and/or password");
        }
    }

    @Override
    public void convertIntegral() {
        Member result = checkUser();
        if (result != null) {
            System.out.println("您的积分为 -> " + result.getIntegral());
            System.out.print("请输入要兑换的硬币数量: ");
            int convertCoin = input.nextInt();
            if (result.getIntegral() >= convertCoin * 100) {
                result.setIntegral(result.getIntegral() - convertCoin * 100);
                result.setCoin(result.getCoin() + convertCoin);
                System.out.println("done!");
            } else {
                System.out.println("积分不足");
            }
        } else {
            System.out.println("wrong userid and/or password");
        }
    }

    @Override
    public void selectIntegral() {
        Member result = checkUser();
        if (result != null) {
            System.out.println("您剩余的积分为 -> " + result.getIntegral());
        } else {
            System.out.println("wrong userid and/or password");
        }
    }

    @Override
    public void updatePassword() {
        Member result = checkUser();
        if (result != null) {
            System.out.print("请输入新密码: ");
            String newPassword = input.next();
            result.setPassword(newPassword);
            System.out.println("done!");
        } else {
            System.out.println("wrong userid and/or password");
        }
    }

    private int getUserId() {
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 5; i++) {
            sb.append(random.nextInt(10));
        }
        return Integer.parseInt(sb.toString());
    }

    private Member checkUser() {
        System.out.print("UserId: ");
        int userId = input.nextInt();
        System.out.print("Password: ");
        String password = input.next();

        for (Member member : members) {
            if (member.getId() == userId && member.getPassword().equals(password)) {
                return member;
            }
        }
        return null;
    }
}

service / MemberService

package f0614.service;
// 与MemberDao内方法一致
public interface MemberService {
    void register();
    void integralConvert();
    void convertIntegral();
    void selectIntegral();
    void updatePassword();
}

service / impl / MemberServiceImpl

package f0614.service.impl;

import f0614.dao.MemberDao;
import f0614.dao.impl.MemberDaoImpl;
import f0614.service.MemberService;

public class MemberServiceImpl implements MemberService {
    // 依赖接口开发 用MemberDao创建对象
    MemberDao memberDao = new MemberDaoImpl();
	
	// 对应方法调用memberDao内对应方法
    @Override
    public void register() {
        memberDao.register();
    }

    @Override
    public void integralConvert() {
        memberDao.integralConvert();
    }

    @Override
    public void convertIntegral() {
        memberDao.convertIntegral();
    }

    @Override
    public void selectIntegral() {
        memberDao.selectIntegral();
    }

    @Override
    public void updatePassword() {
        memberDao.updatePassword();
    }
}

main / MenuManager

package f0614.main;

import f0614.service.impl.MemberServiceImpl;

import java.util.Scanner;

public class MenuManager {
    public void showMenu() {

        MemberServiceImpl memberService = new MemberServiceImpl();
        Scanner input = new Scanner(System.in);

        for (;;) {
            System.out.println("***********************欢迎进入青青网校积分商城***********************");
            System.out.println("1.注册    2.积分累积    3.积分兑换    4.积分查询    5.修改密码    6.退出");
            System.out.println("******************************************************************");
            System.out.print("请选择: ");
            int choose = input.nextInt();
            if (choose == 1) {
                memberService.register();
            } else if (choose == 2) {
                memberService.integralConvert();
            } else if (choose == 3) {
                memberService.convertIntegral();
            } else if (choose == 4) {
                memberService.selectIntegral();
            } else if (choose == 5) {
                memberService.updatePassword();
            } else if (choose == 6) {
                return;
            }
        }
    }
}

main / TestMain

package f0614.main;

public class TestMain {
    public static void main(String[] args) {
        MenuManager menuManager = new MenuManager();
        menuManager.showMenu();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值