/*增加了业务层实现接口.用单例模式实现ManagerImpl对象的创建。架构的搭建,实现分层开发,完成存款、取款、查询、退出系统等基本功能。*/
TesBank.java
package com.cx.bank.test;
import com.cx.bank.manager.ManagerImpl;
import java.util.Scanner;
/*
* 测试层
* 接受用户的请求1
* 调试功能
* 显示处理结果
* 包名:com.cx.bank.test (测试层)
* TestBank 测试类
* 该类通过(1代表查询、2代表取款、3代表存款功能 4代表退出系统)来调用业务层的各个方法
*/
public class TestBank {
private static void printMenu() {
System.out.println("-----------银行系统1.2------------");
System.out.println(" 1.查询 ");
System.out.println(" 2.存款 ");
System.out.println(" 3.取款 ");
System.out.println(" 4.退出 ");
System.out.println("------------欢迎使用-------------");
}
public static void main(String[] args) {
ManagerImpl manager = ManagerImpl.getInstance();
Scanner scanner = new Scanner(System.in);
int flag;
while (true) {
printMenu();//调用界面
System.out.println("请你输入操作:");
flag = scanner.nextInt();
switch (flag) {
case 1: //查询金额
System.out.println("您当前余额为:" + manager.inquiry() + "");
continue;
case 2: //存款
System.out.println("请输入你要存入的金额:");
double money = scanner.nextDouble();
manager.deposit(money);
System.out.println("您当前余额为:" + manager.inquiry() + "");
continue;
case 3: //取款
System.out.println("请输入您要取款的金额:");
double money1 = scanner.nextDouble();
manager.withdrawals(money1);
System.out.println("您当前余额为:" + manager.inquiry() + "");
continue;
case 4: //退出系统
manager.exitSystem();
break;
}
}
}
}
MangerImpl.java
package com.cx.bank.manager;
import com.cx.bank.model.MoneyBean;
/**
* 包名:com.cx.bank.manager (业务层)
* ManagerImpl业务类
*/
public class ManagerImpl implements ManagerInterface{
private static ManagerImpl instance = null; // 单例对象
private final MoneyBean moneyBean = new MoneyBean();
// 构造函数私有化,防止外部创建对象
private ManagerImpl() {}
// 获取单例对象的静态方法
public static ManagerImpl getInstance() {
if (instance == null) {
instance = new ManagerImpl();
}
return instance;
}
public double inquiry() {
return moneyBean.getMoney();
}
public boolean withdrawals(double money) {
if (money <= 0) {
System.out.println("对不起,您的取款金额需大于0元!");
return false;
}
double leave = moneyBean.getMoney();
if (money > leave) {
System.out.println("对不起,您的存款金额不够!");
return false;
}
moneyBean.setMoney(leave - money);
System.out.println("取款成功!");
return true;
}
public boolean deposit(double money) {
if (money <= 0) {
System.out.println("对不起,您的存款金额需大于0元!");
return false;
}
double leave = moneyBean.getMoney();
moneyBean.setMoney(leave + money);
System.out.println("存款成功!");
return true;
}
public void exitSystem() {
System.out.println("系统已经退出");
System.exit(1);
}
}
ManagerInterface.java
package com.cx.bank.manager;
public interface ManagerInterface {
double inquiry();//余额查询功能
boolean withdrawals(double money); //取款功能
boolean deposit(double money);//存款功能
void exitSystem(); //退出系统功能
}
Model.java
package com.cx.bank.model;
/*
* 模型层
* 对请求和结果数据的封装
* 包名:com.cx.bank.model(模型层)
* MoneyBean 实体类(该类有一个money属性)
*/
public class MoneyBean {
private double money;
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public MoneyBean() {
super();
}
}
/*后续更新,只是用作笔记,若有英雄所见略同勿喷*/