上一节说到组合模式:https://blog.csdn.net/zhanglei082319/article/details/88759794
组合模式: 对象自身包含其他对象的引用,以达到组合对象数据的效果
今天说一种非常简单的设计模式: 外观模式
外观模式: 将一个功能关联的多个服务模块,组合成一个大模块,供调用者使用。
比如:手机销售,需要走手机订单揽收,手机包装发货,到件提醒等。在开发中,如果订单,发货,邮件发送是各个独立的服务,那么服务的调用者可能就会犯浑,不知道调用服务的哪个接口,需要将每个服务的每个接口都看一下,然后自己组装实现一个功能。这样虽然很灵活,但是从使用上来说难度也加大了。
我们为什么不将这些细小的各个模块功能合在一起组成一个打功能模块。
比如:
可以这样
public class Sale{
/**
* 订单服务
*/
private OrderService orderService;
/**
* 包装服务
*/
private PackService packService;
/**
* 消息服务
*/
private EmailService emailService;
public Sale(){
this.orderService = new OrderService();
this.packService = new PackService();
this.emailService = new EmailService();
}
public void sale(){
//揽收
this.orderService.order();
//包装
this.packService.pack();
//发送消息
this.emailService.send();
}
}
将几个服务放到一个服务中组合成一个新的功能;
我们只需要直接调用sale()方法,不需要关注orderService,packService,和emailService调用的方法。