package fanxiangdiaoyong;
public class Context {
private String name =null;
private double money=0.0;
private Payment pm=null;
public Context(String name, double money, Payment pm) {
this.name = name;
this.money = money;
this.pm = pm;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public void pay()
{pm.Pay(this);
}
}
package fanxiangdiaoyong;
public class Context2 extends Context {
private String account;
public Context2(String name, double money, String account,Payment pm) {
super(name, money, pm);
this.account=account;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
}
package fanxiangdiaoyong;
public interface Payment {
public void Pay(Context con);
}
package fanxiangdiaoyong;
public class RMB implements Payment{
@Override
public void Pay(Context con) {
System.out.println("采用人民币现金支付支付给"+con.getName()+con.getMoney()+"元");
}
}
package fanxiangdiaoyong;
public class Dollar implements Payment{
@Override
public void Pay(Context con) {
System.out.println("采用美元现金支付支付给"+con.getName()+con.getMoney()+"元");
}
}
package fanxiangdiaoyong;
public class Credit implements Payment{
@Override
public void Pay(Context con) {
Context2 con2=(Context2)con;
System.out.println("采用银行转账支付支付给"+con2.getName()+"的账户"+con2.getAccount()+con2.getMoney()+"元");
}
}
package fanxiangdiaoyong;
public class Test {
public static void main(String args[])
{Payment rmb=new RMB();
Payment dol=new Dollar();
Context ct=new Context("小李",5000,rmb);
ct.pay();
Context ct2=new Context("小王",8000,dol);
ct2.pay();
Payment cd=new Credit();
Context2 ct3=new Context2("老张",6500,"031126",cd);
ct3.pay();
}
}