美文网首页
外观模式之Context

外观模式之Context

作者: wa11e | 来源:发表于2017-10-31 16:25 被阅读0次

概念

为系统中的一组接口提过一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用.

举个栗子

不懂股票的人,将钱交给理财基金,让他们负责购买股票,并抽取一定的佣金,而对于人来说,理财基金就是更高层的接口,负责一致的买和卖.

来看看UML图

//股票
public class Stock1 {
    public void buy() {
        System.out.println("Buy Stock1");
    }
    
    public void sell() {
        System.out.println("Sell Stock1");
    }
    }
    //国债
    public class Stock2 {
    ...
    }
    //债券
    public class Stock3 {
    ...
}

定义理财基金,高层接口

public class Facade {

    Stock1 stock1;
    Stock2 stock2;
    Stock3 stock3;

    public Facade(){
        stock1 = new Stock1();
        stock2 = new Stock2();
        stock3 = new Stock3();
    }
    
    public void buy(){
        stock1.buy();
        stock2.buy();
        stock3.buy();
    }

    public void sell(){
        stock1.sell();
        stock2.sell();
        stock3.sell();
    }
}

使用

Facade facade = new Facade();
facade.buy();
facade.sell()

Android中的外观模式

外观模式在Android中也非常常见,使用率非常高,那就是Context,当我们去获取各式各样的资源文件时,以及对四大组件进行操作,使用一些系统的服务,都可以使用Context就可以去获取,Context为我们提供了一键式服务,当然是外观模式了.(源码比较简单,就不分析了)Context就是外观模式中的高层接口.

结语

有错请指出,谢谢.

学无止境.

相关文章

  • 外观模式之Context

    概念 为系统中的一组接口提过一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用. 举个栗子...

  • 结构型模式:外观模式

    文章首发:结构型模式:外观模式 七大结构型模式之五:外观模式。 简介 姓名 :外观模式 英文名 :Facade P...

  • 设计模式之 外观模式

    概述 UML类图 代码栗子 总结 概述概念 外观模式又叫做门面模式,提供一个更方便,高层接口,使用一致性的界面使得...

  • 第4章 结构型模式-外观模式

    一、外观模式的简介 二、外观模式的优缺点 三、外观模式的场景 四、外观模式的实例

  • Java中的23种设计模式(二)

    (适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)原文作者:终点 出处:Java之美[...

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

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

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

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

  • 外观模式

    一、外观模式介绍 二、外观模式代码实例

  • 策略模式 2018-11-04

    设计模式之策略模式 官方说明设计模式的3个角色: 环境角色:context , 持有一个策略的引用 抽象策略角色,...

  • Java设计模式之——外观模式

    前言 在简述外观模式前,先看个生活中的例子: 程序员小明到了结婚的年龄,但是由于程序员对于泡妹子这件事来说,咳咳,...

网友评论

      本文标题:外观模式之Context

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