项目源码已提交github:https://github.com/ckl001/designPattem_java
package com.Ljava.design.pattem.structural.bridge;
/**
* 银行抽象
*/
public abstract class Bank {
protected Account account;
public Bank(Account account) {
this.account = account;
}
abstract Account openAccount();
}
package com.Ljava.design.pattem.structural.bridge;
/**
* 账户
*/
public interface Account {
Account openAccount();
void showAccountType();
}
package com.Ljava.design.pattem.structural.bridge;
/**
* @Auther 20173
* @Date 2019-4-9 14:56
* @Des 中国农业银行
**/
public class ABCBank extends Bank{
public ABCBank(Account account) {
super(account);
}
@Override
Account openAccount() {
System.out.println("打开中国农业银行的账户。。。");
account.openAccount();
return account;
}
}
package com.Ljava.design.pattem.structural.bridge;
/**
* @Auther 20173
* @Date 2019-4-9 15:00
* @Des 中国工商银行
**/
public class ICBCBank extends Bank{
public ICBCBank(Account account) {
super(account);
}
@Override
Account openAccount() {
System.out.println("打开中国工商银行账号");
account.openAccount();
return account;
}
}
package com.Ljava.design.pattem.structural.bridge;
/**
* @Auther 20173
* @Date 2019-4-9 15:02
* @Des 定期 账户
**/
public class DepositAccount implements Account {
@Override
public Account openAccount() {
System.out.println("打开定期账户。。。");
return new DepositAccount();
}
@Override
public void showAccountType() {
System.out.println("这是一个定期账户!");
}
}
package com.Ljava.design.pattem.structural.bridge;
/**
* @Auther 20173
* @Date 2019-4-9 15:04
* @Des 活期账户
**/
public class SavingAccount implements Account {
public Account openAccount() {
System.out.println("打开活期账号");
return new SavingAccount();
}
public void showAccountType() {
System.out.println("这是一个活期账号");
}
}
package com.Ljava.design.pattem.structural.bridge;
/**
* @Auther 20173
* @Date 2019-4-9 15:04
* @Des 活期账户
**/
public class SavingAccount implements Account {
public Account openAccount() {
System.out.println("打开活期账号");
return new SavingAccount();
}
public void showAccountType() {
System.out.println("这是一个活期账号");
}
}