当前位置:首页 > 设计模式 > 正文内容

桥接模式

canca19年前 (2007-03-26)设计模式436

//桥接模式
//CopyRight(C) CAnca Software Office 2006.
//Created by CAnca.

import java.util.*;

public class BridgeMode{
 public static void main(String[] args){
  buy buy1 = new concreteBuyA();
  buy buy2 = new concreteBuyB();
  buy1.Add("apple",10,3F);
  buy1.setAgio();
  buy1.pay(40F);
  
  buy2.Add("banana",50,4F);
  buy2.setAgio();
  buy2.pay(123F);
 }
}

abstract class buy{
 protected Hashtable ht = null;
 protected float agio = 1.0F;
 public buy(){
  ht = new Hashtable();
 }
 public void Add(String foodName,int count,float money){
  ht.put(foodName,count * money);
 }
 
 protected float payCount(){
  Enumeration ex = ht.keys();
  float count = 0.0f;
  while(ex.hasMoreElements()){
   String keyValue = (String)ex.nextElement();
   count += Float.parseFloat(ht.get(keyValue).toString());
  }
  return count;
 }
 public abstract void setAgio();
 public abstract float pay(float money);
}

class concreteBuyA extends buy{
 public void setAgio(){
  this.agio = 0.9F;
 }
 
 public float pay(float money){
  float count = payCount();
  if(money >= count * agio){
   System.out.println("concreteBuyA:付费成功!");
   return money - count * agio;
  }else{
   System.out.println("concreteBuyA:不够现金!");
   return -1.0f;
  }
 }
}

class concreteBuyB extends buy{
 public void setAgio(){
  if(this.payCount() > 100)
   this.agio = 0.7F;
 }
 
 public float pay(float money){
  float count = payCount();
  if(money >= count * agio){
   System.out.println("concreteBuyB:付费成功!");
   return money - count * agio;
  }else{
   System.out.println("concreteBuyB:不够现金!");
   return -1.0f;
  }
 }
}

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/663.html

标签: 设计模式
分享给朋友:
返回列表

上一篇:代理模式

下一篇:适配器模式

“桥接模式” 的相关文章

抽象工厂模式

//抽象工厂模式//Copyright CAnca Software office//Created by CAnca.2006public class AbstractFactory{ public static void main(String[] args){  ...

单例模式

//CopyRight CAnca Software Office. 2006//Created by CAnca. import java.util.*; public class singletonMode{ public static void main(String[] args)...

工厂方法模式

//工厂方法模式:现实例子//CopyRight(C)CAnca Software Office. 2006//Created by CAnca. import java.util.*; public class Real_World_Example{ public static void...

建造者模式

//建造者模式//CopyRight(C)CAnca Software Office.//Created by CAnca. import java.util.*; public class BuilderMode{ public static void main(String[] arg...

代理模式

//代理模式--真实例子//CopyRight(C)CAnca Software Office.2006//Created by CAnca.   public class ProxyMode_RealWorld{     public static void...

适配器模式

//适配器模式//CopyRight(C)CAnca Software Office.//Created by CAnca. public class AdapterMode{ public static void main(String[] args){  Adapt...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。