文档章节

简单 Proxy 自动提款机应用

指尖铜绿
 指尖铜绿
发布于 2014/06/04 07:26
字数 264
阅读 20
收藏 0

Input输入类:

import java.util.Scanner;

public class Input {
 
  private ProxyAccount account;
  
     public Input(ProxyAccount account) {
   super();
   this.account = account;
  }


 public void startInput() {
  String p = account.enterPIN();
  if(p.equals(account.getPIN())){
  
   Scanner scanner = new Scanner(System.in);
      String c = "a"; 
  while (!c.equals("x")) {   
   System.out.println("Enter");
   System.out.println("   w to withdraw money");
   System.out.println("   d to deposit money");
   System.out.println("   x to quit");
   System.out.print("Choice: ");
   c = scanner.next();
   if (c.equals("w") || c.equals("d")) {
    int amount = 0;
    System.out.print("Amount: ");
    amount = scanner.nextInt();
    if (c.equals("w")) {
     account.withdraw(amount);
     System.out.println("New amount: " + account.getAmount());
    } else if (c.equals("d")) {
     account.deposit(amount);
     System.out.println("New amount: " + account.getAmount());
    }
   }
  }
   }
  else{
   System.out.println("Your password is false!");
    this.startInput();
  }
 }

}

-------------------------------------------------------------------------------------------------------------------------------

RealAccount 实际Subject类:

public class RealAccount implements Account{
 
 private int amount;

 public RealAccount(int amount) {
  super();
  this.amount = amount;
 }

 public void withdraw(int money) {
  amount = amount - money;
 }
 
 public void deposit(int money) {
  amount = amount + money;
 }
 
 public int getAmount() {
  return amount;
 }

}

-------------------------------------------------------------------------------------------------------------------------------

ProxyAccount 代理类:

import java.util.Scanner;

public class ProxyAccount implements Account{

 private Account proxied;
 
 private String PIN;
 
 public ProxyAccount(Account proxied, String PIN) {
  super();
  this.proxied = proxied;
  this.PIN = PIN;
 }
 
 public String getPIN() {
  return PIN;
 }
 
    public String enterPIN(){
 Scanner pin = new Scanner(System.in);
 System.out.print("Please enter your password: ");
 return pin.next();
    }


 public void deposit(int money) {
  proxied.deposit(money);
  
 }

 public int getAmount() {
  return proxied.getAmount();
 }

 public void withdraw(int money) {
  proxied.withdraw(money);
  
 }

 
}

-------------------------------------------------------------------------------------------------------------------------------

Account 接口:

public interface Account {
 
 
 void withdraw(int money);
 
 void deposit(int money);
 
 int getAmount();

}

-------------------------------------------------------------------------------------------------------------------------------

Main 主方法:

public class MainAccount {
 
 public static void main(String[] args) {
  Account account = new RealAccount(5000);  //多态
  ProxyAccount proxyaccount = new ProxyAccount(account,"123456");
  Input input = new Input(proxyaccount);
  input.startInput();
  
 }

}

© 著作权归作者所有

指尖铜绿
粉丝 1
博文 6
码字总数 352
作品 0
成都
程序员
私信 提问
apache 2.4.12 负载均衡配置

apache 2.4.12 负载均衡配置比较简单,修改httpd.conf文件相关内容即可, 首先修改httpd.conf,启用负载均衡相关模块 LoadModule proxymodule modules/modproxy.so LoadModule proxybalance...

bboss
2015/06/06
0
0
MySQL Proxy实现数据库读写分离

可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力。那么对于前台应用来说,就要考虑如何将读的压力 分布到多个slave上。如果每个应用都需要来实现读写分离的...

hans汉斯
2010/01/13
702
0
Bloom filter在分布式环境中的应用

Bloom filter在分布式环境中的应用 未命名2017-05-0427 阅读 filter技术分布式 概述 布隆过滤器是一个应用非常广泛的概率型数据结构,一般用于判断一个元素是否存在一个集合中,比如在字处理...

未命名
2017/05/04
0
0
linux mysql proxy 的安装,配置,以及读写分离

linux mysql proxy 的安装,配置,以及读写分离 张映 发表于 2010-03-03 分类目录: mysql 一,mysql proxy是什么,干什么用的 MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy...

daniel-john
2014/07/07
41
0
Key file does not start with a group

MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读...

bengozhong
2016/10/11
289
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
5
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
70
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部