文档章节

简单 Proxy 自动提款机应用

指尖铜绿
 指尖铜绿
发布于 2014/06/04 07:26
字数 264
阅读 17
收藏 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
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
0
0
Redis 集群解决方案-Codis

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, C...

goroutine
2014/11/09
84.2K
15
Nginx realip_module 模块 = Apache mod_rpaf

Apache 有个第三方开发的 mod_rpaf ,用于当 Apache 置于 proxy 后端的时候接收到前端送来的 IP head 从而获取到真实的IP. 不然日志跟应用都始终只能获取到 反向代理服务端的IP 详细请看:h...

范堡
2009/08/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Python爬虫:Scrapy框架的安装和基本使用

大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。 Scrapy的安装 Scrapy的安装是很麻烦的,对于一些想使用S...

糖宝lsh
18分钟前
1
0
Android Dialog几种对话框

1,普通对话框 2,单选对话框 3,多选对话框 4,日期选择对话框 5,时间选择对话框 6,日期选择对话框 7,进度条对话框 普通对话框 AlertDialog.Builder builder = new AlertDialog.Builde...

lanyu96
25分钟前
0
0
awk命令

-F选项的作用是指定分隔符。如果不加-F选项,则以空格或者tab为分隔符。print为打印操作,用来打印某个字段。$1为第1个字段,$2为第2个字段,以此类推。但是$0比较特殊,它表示整行: [root@cen...

野雪球
32分钟前
0
0
一切都靠大数据:滴滴已封禁4.3万人员、车辆

这段时间以来,滴滴出行相继出炉了各种整改措施,包括自身安全建设和外部社会共建,昨日就刚刚宣布正在筹备建立安全监督顾问委员会。 据媒体最新报道,9月30日,上海市交通委员会执法总队、上...

linuxCool
51分钟前
4
0
awk命令用法介绍

10月18日任务 9.6/9.7 awk 1.awk(上)(下) 1.awk 分段操作功能 指定分隔符,并把第一段打印出来,不会改动文件内容 将所有内容打印出来 awk 没有指定分隔符号,则会默认用空格或者空白字符...

hhpuppy
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部