菜单
首页
博客
相册
时间轴
联系我
倒计时
设计模式入门:外观模式
设计模式
|
2018-04-15 14:30:14
|
83 阅读
|
Linux
java
>文章中部分定义和解释性文字,都是引用百度百科,主要的代码及场景应用为本人原创 **外观模式,为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。** >场景:系统有个清理的任务,需要清理三个地方的缓存:本地缓存,数据库缓存,FTP服务器缓存。如果让客户端直接调用三个清理系统,耦合性太高,不便于以后扩展,所以可以使用外观模式。 **结果** * Facade:外观类为子系统提供一个共同的对外接口(Clean) * Clients:客户对象通过一个外观接口读写子系统中各接口的数据资源。(Main) **设计**  **实现** 代码地址:[`https://github.com/telundusiji/designpattern`](https://github.com/telundusiji/designpattern) 数据库清理 ``` @Slf4j public class DBClean { public void clean(){ log.info("数据库缓存清理成功"); } } ``` FTP服务器清理 ``` @Slf4j public class FtpClean { public void clean(){ log.info("Ftp缓存清理成功"); } } ``` 本地清理 ``` @Slf4j public class LocalClean { public void clean(){ log.info("本地缓存清理成功"); } } ``` 清理外观类 ``` public class Clean { private DBClean dbClean; private FtpClean ftpClean; private LocalClean localClean; public Clean(){ dbClean = new DBClean(); ftpClean = new FtpClean(); localClean = new LocalClean(); } public void clean(){ dbClean.clean(); localClean.clean(); ftpClean.clean(); } } ``` **优点** * 实现了子系统与客户端之间的松耦合关系。 * 客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。 **经典应用** SLF4J(Simple Logging Facade for Java)就是一个外观模式的实际应用。 想了解更多可以去查询SLF4J相关资料
back
to top