设计模式外观模式

作者: GB_speak | 来源:发表于2017-04-13 15:07 被阅读9次

1.外观模式的定义及使用场景
外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各个第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式,通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。

Paste_Image.png
定义:
要求一个子系统的外部与其内部的通讯必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用
使用场景:
为一个复杂的模块或子系统提供一个供外界访问的接口
子系统相对独立–外界对子系统的访问只要黑箱操作即可
预防低水平人员带来的风险扩散2. 外观模式的优缺点
2.1优点

减少系统的相互依赖
提高了灵活性
2.2缺点
门面模式的最大缺点就是不符合开闭原则,对修改关闭,对扩展开放,需求变化时,需要修改Facade的代码,这样相对风险比较大

3.注意事项

对于庞大到不能容忍的程度,一个子系统可以有多个门面
门面不要参与子系统内的业务逻辑
4. 外观模式的实现方式

public class ClassA {
    public void doSomeThing() {
        System.out.println("ClassA is doSomeThing!!!");
    }
}```

ublic class ClassB {
public void doSomeThing() {
System.out.println("ClassB is doSomeThing!!!");
}
}```

public class ClassC {
    public void doSomeThing() {
        System.out.println("ClassC is doSomeThing!!!");
    }
}```

public class Facade {
ClassA classA = new ClassA();
ClassB classB = new ClassB();
ClassC classC = new ClassC();
public void doMethodA() {
classA.doSomeThing();
}
public void doMethodB() {
classB.doSomeThing();
}
public void doMethodC() {
classC.doSomeThing();
}
}```

public class Test {
    public  static void main(String args[]) {
        Facade facade = new Facade();
        facade.doMethodA();
        facade.doMethodB();
        facade.doMethodC();
    }
}```
**5. 外观模式在Android中的实际应用**
在Android开发过程中,Context是最重要的一个类型,Context意为上下文,也就是程序的运行环境。它封装了很多重要的操作。如startActivity()、sendBoradcast()、bindService等,因此,Context对开发者来说就是重要的高层接口。
我们都知道Context的实现类是ContextImpl。ContextImpl内部封装了很多不同子系统的操作,例如Activity的跳转、广播、启动服务、设置壁纸等,这些工作并不是在ContextImpl中实现,而是转交给了具体的子系统进行处理。
用户可以通过Context这个接口统一进行与Android系统的交互,这样用户通过情况下就不需要对每个子系统进行了解,例如启动Activity时用户不需要手动调用mMainThread.getInstrumentation().execStartActivity函数进行执行,发送广播时也不需要直接操作ActivityManagerNative类。用户于系统服务的交互都通过Context的高层接口,这样对用户屏蔽了具体的实现细节,降低了使用成本
关于Context的具体介绍可以参考博文:[http://blog.csdn.net/junbin1011/article/details/54612858(](http://blog.csdn.net/junbin1011/article/details/54612858%EF%BC%88) Android之Context底层原理)
出处:http://huangjunbin.com/page/2/

相关文章

  • Android设计模式——外观模式(七大结构型)

    1.外观模式介绍 外观模式(Facade Pattern),是七大结构型设计模式之一。 外观模式运...

  • 设计模式[9]-外观模式-Facade Pattern

    1. 外观模式 外观模式(Facade Pattern),又称为门面模式,是非常常用的结构性设计模式。外观模式使得...

  • java设计模式-外观模式(Facade)

    外观模式,属于结构性模式。属于设计模式里面比较简单的设计模式,本人认为是最简单的设计模式。 所谓外观,就是我们能看...

  • 了解外观模式

    java 设计模式 ------外观模式 Java中一共有23种设计模式,每种设计模式各有特...

  • 设计模式之-4.外观模式

    每看一次设计模式,感觉每一个设计模式看起来是那么简单,对于外观模式我的理解就是外观模式:外观模式,这个名字起得不怎...

  • 设计模式详解——外观模式

    本篇文章介绍一种设计模式——外观模式。本篇文章内容参考《JAVA与模式》之门面模式,外观模式,深入浅出外观模式(二...

  • 外观模式(Facede)

    本文参考自: 《JAVA设计模式》之外观模式(Facade) 1. 作用 外观模式也叫门面模式,门面模式是对象的结...

  • 设计模式---外观模式

    1、外观模式(Facade):也叫门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个...

  • 设计模式——外观模式

    阎宏博士的《JAVA与模式》一书中开头是这样描述外观(Facade)模式的:门面模式是对象的结构模式,外部与一个子...

  • 设计模式--外观模式

    一、举个栗子小明每天回家都会先打开灯,空气净化器,电热水器烧上水,放上音乐,如果天气热的话,再打开空调。写成代码 ...

网友评论

    本文标题:设计模式外观模式

    本文链接:https://www.haomeiwen.com/subject/kvmbattx.html