研磨设计模式之外观模式(Facade)(解决方案)
2014-09-29 15:50
405 查看
|
/** * A模块的接口 */ public interface AModuleApi { /** * 示意方法,A模块对外的一个功能方法 */ public void testA(); } |
public class AModuleImpl implements AModuleApi{ public void testA() { System.out.println("现在在A模块里面操作testA方法"); } } |
public interface BModuleApi { public void testB(); } |
public class BModuleImpl implements BModuleApi{ public void testB() { System.out.println("现在在B模块里面操作testB方法"); } } |
public interface CModuleApi { public void testC(); } |
public class CModuleImpl implements CModuleApi{ public void testC() { System.out.println("现在在C模块里面操作testC方法"); } } |
/** * 外观对象 */ public class Facade { /** * 示意方法,满足客户需要的功能 */ public void test(){ //在内部实现的时候,可能会调用到内部的多个模块 AModuleApi a = new AModuleImpl(); a.testA(); BModuleApi b = new BModuleImpl(); b.testB(); CModuleApi c = new CModuleImpl(); c.testC(); } } |
public class Client { public static void main(String[] args) { //使用Facade new Facade().test(); } } |
现在在A模块里面操作testA方法 现在在B模块里面操作testB方法 现在在C模块里面操作testC方法 |
3.2.4 使用外观模式重写示例
要使用外观模式重写前面的示例,其实非常简单,只要添加一个Facade的对象,然后在里面实现客户端需要的功能就可以了。(1)新添加一个Facade对象,示例代码如下:
/** * 代码生成子系统的外观对象 */ public class Facade { /** * 客户端需要的,一个简单的调用代码生成的功能 */ public void generate(){ new Presentation().generate(); new Business().generate(); new DAO().generate(); } } |
(3)看看此时的客户端怎么实现,不再需要客户端去调用子系统内部的多个模块,直接使用外观对象就可以了,示例代码如下:
public class Client { public static void main(String[] args) { //使用Facade new Facade().generate(); } } |
如同上面讲述的例子,Facade类其实相当于A、B、C模块的外观界面,Facade类也被称为A、B、C模块对外的接口,有了这个Facade类,那么客户端就不需要知道系统内部的实现细节,甚至客户端都不需要知道A、B、C模块的存在,客户端只需要跟Facade类交互就好了,从而更好的实现了客户端和子系统中A、B、C模块的解耦,让客户端更容易的使用系统。
本文链接:研磨设计模式之外观模式(Facade)(解决方案),转自:http://sishuok.com/forum/blogPost/list/5063.html
如非特别注明,本站内容均为领悟书生原创,转载请务必注明作者和原始出处。
本文地址:http://www.656463.com/article/fQNnqq.htm
相关文章推荐
- 研磨设计模式之外观模式(Facade)(模式讲解)
- C# 设计模式--外观模式(Facade)
- 设计模式学习笔记(十一)——Facade外观
- 设计模式--外观模式(Facade模式)
- 设计模式之Facade(外观)
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade外观模式
- 设计模式之Facade(外观)模式
- 设计模式 - Facade Pattern(外观模式)
- 设计模式学习笔记(十一)——Facade外观模式
- 设计模式与泡mm的关系之Facade外观模式及外观模式的再思考
- 设计模式袖珍版 连续转载之 - Facade(外观)
- 乐在其中设计模式(C#) - 外观模式(Facade Pattern)
- 设计模式之Facade(外观 总管 Manager)
- [译]The Facade Pattern外观设计模式 from Chapter 6 of《Design Patterns Explained》
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之外观(Facade)模式
- 设计模式学习笔记(十一)——Facade外观模式