创新互联专业为企业提供岱山网站建设、岱山做网站、岱山网站设计、岱山网站制作等企业网站建设、网页设计与制作、岱山企业网站模板建站服务,十年岱山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
门面模式(Facade Pattern)又称作外观模式
,是指提供一个统一的接口,用来访问子系统中的一群接口,属于结构型设计模式。
门面模式的主要特征是定义了一个高层接口,让子系统更容易使用。
2、结构(1)模式的结构
主要角色如下:
3、优缺点
注意:
子系统类中没有 Facade任何信息,即没有 Facade对象的引用。对于 SubSystem而言,Facade只是另一个客户端,处理 Facade指派的任务。
优点:
缺点:
代码如下:
public class FacadePattern {public static void main(String[] args) {ServiceFacade serviceFacade = new ServiceFacade();
serviceFacade.doCommon();
}
}
// 子系统角色
class SubSystemA {public void doA() {System.out.println("doing A");
}
}
class SubSystemB {public void doB() {System.out.println("doing B");
}
}
// 外观角色
class ServiceFacade {private SubSystemA subSystemA;
private SubSystemB subSystemB;
public ServiceFacade() {this.subSystemA = new SubSystemA();
this.subSystemB = new SubSystemB();
}
// 对外接口
public void doCommon() {subSystemA.doA();
subSystemB.doB();
}
}
三、模式的应用实例以客户通过购买基金(门面)从而获得收益为例。基金经理人操作股票(子系统)交易。
(1)股票(子系统)
public class Stock1 {private String name = "股票1";
public void buy(){System.out.println("买进" + name);
}
public void sell(){System.out.println("卖出" + name);
}
}
public class Stock2 {private String name = "股票2";
public void buy(){System.out.println("买进" + name);
}
public void sell(){System.out.println("卖出" + name);
}
}
(2)基金(门面)
public class FundFacade {private String name = "基金A";
private Stock1 stock1;
private Stock2 stock2;
public FundFacade() {this.stock1 = new Stock1();
this.stock2 = new Stock2();
}
public void buyFund(){System.out.println("买进" + name + ", 基金经理买进的股票如下:");
stock1.buy();
stock2.buy();
}
public void sellFund(){System.out.println("卖出" + name+ ", 基金经理卖出的股票如下:");
stock1.sell();
stock2.sell();
System.out.println("收益1W+");
}
}
(3)测试:小白购买该基金
public static void main(String[] args) {FundFacade fundFacade = new FundFacade();
fundFacade.buyFund();
System.out.println("----第N天之后----");
fundFacade.sellFund();
}
– 求知若饥,虚心若愚。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧