外观设计模式(购房示例)
0. UML结构图
1. 购房示例Code
1.1 卖家
public interface Person {
void consult();
}
public class Seller implements Person {
@Override
public void consult() {
System.out.println("Seller.consult 和卖家协商完房屋价格");
}
}
1.2 银行
public interface Bank {
void signLoanAgreement();
void payMoney();
}
public class CommercialBank implements Bank {
@Override
public void signLoanAgreement() {
System.out.println("CommercialBank.loan 在商业银行签订贷款协议");
}
@Override
public void payMoney() {
System.out.println("CommercialBank.payMoney 商业银行放款");
}
}
1.3 税务局
public interface TaxBureau {
void payTax();
}
public class ChongqingTaxBureau implements TaxBureau {
@Override
public void payTax() {
System.out.println("ChongqingTaxBureau.payTax 在重庆税务局交税");
}
}
1.4 房地产经纪人
public class HouseAgent {
public void purchaseHouse() {
findGoodHouse();
Seller seller = new Seller();
seller.consult();
CommercialBank commercialBank = new CommercialBank();
commercialBank.signLoanAgreement();
ChongqingTaxBureau chongqingTaxBureau = new ChongqingTaxBureau();
chongqingTaxBureau.payTax();
commercialBank.payMoney();
over();
}
private void findGoodHouse() {
System.out.println("HouseAgent.findGoodHouse 房产经纪人寻找到合适的房屋");
}
private void over() {
System.out.println("HouseAgent.over 本次购房完成");
}
}
2. 购房示例Test
public class FacadeTest {
public static void main(String[] args) {
HouseAgent houseAgent = new HouseAgent();
houseAgent.purchaseHouse();
}
}