设计模式7--外观模式
什么是外观模式
外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
外观模式例子
用户注册完之后,需要调用阿里短信接口、邮件接口、微信推送接口。
public interfaceEamilSmsService { public voidsendSms(); } public classEamilSmsServiceImpl implements EamilSmsService{ public voidsendSms() { System.out.println("发送邮件消息");
} }
|
//微信消息推送 public interfaceWeiXinSmsService { public voidsendSms(); } public classEamilSmsServiceImpl implements EamilSmsService{
@Override public voidsendSms() { System.out.println("发送邮件消息");
}
} |
//阿里短信消息 public interfaceAliSmsService { public voidsendSms(); } public classAliSmsServiceImpl implementsAliSmsService {
@Override public voidsendSms() { System.out.println("支付宝发送消息..."); }
}
|
门面类
public class Computer { AliSmsService aliSmsService; EamilSmsService eamilSmsService; WeiXinSmsService weiXinSmsService;
public Computer() { aliSmsService = newAliSmsServiceImpl(); eamilSmsService = new EamilSmsServiceImpl(); weiXinSmsService = newWeiXinSmsServiceImpl(); }
public void sendMsg() { aliSmsService.sendSms(); eamilSmsService.sendSms(); weiXinSmsService.sendSms();
}
} |
public class Client {
public static voidmain(String[] args) { // AliSmsService aliSmsService= new AliSmsServiceImpl(); // EamilSmsService eamilSmsService= new EamilSmsServiceImpl(); // WeiXinSmsService weiXinSmsService= new WeiXinSmsServiceImpl(); // aliSmsService.sendSms(); // eamilSmsService.sendSms(); // weiXinSmsService.sendSms(); newComputer().sendMsg(); }
} |