啦啦哩Android开发经验谈Android开发

Android的设计模式-外观模式

2018-01-04  本文已影响174人  四月葡萄

前言

Android的设计模式系列文章介绍,欢迎关注,持续更新中:

Android的设计模式-设计模式的六大原则
一句话总结23种设计模式则
创建型模式:
Android的设计模式-单例模式
Android的设计模式-建造者模式
Android的设计模式-工厂方法模式
Android的设计模式-简单工厂模式
Android的设计模式-抽象工厂模式
Android的设计模式-原型模式
行为型模式:
Android的设计模式-策略模式
Android的设计模式-状态模式
Android的设计模式-责任链模式
Android的设计模式-观察者模式
Android的设计模式-模板方法模式
Android的设计模式-迭代器模式
Android的设计模式-备忘录模式
Android的设计模式-访问者模式
Android的设计模式-中介者模式
Android的设计模式-解释器模式
Android的设计模式-命令模式
结构型模式:
Android的设计模式-代理模式
Android的设计模式-组合模式
Android的设计模式-适配器模式
Android的设计模式-装饰者模式
Android的设计模式-享元模式
Android的设计模式-外观模式
Android的设计模式-桥接模式

1.定义

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用。

2.介绍

3.UML类图

外观模式UML类图.jpg
角色说明:

4.实现

我们玩游戏时一般都有登录和充值等操作,这些一般都是第三方SDK来完成。游戏研发一般只需进行简单的接入就可以使用登录充值功能了。我们来实现一个简单的游戏SDK:

4.1 创建外观角色

这里只要是封装游戏SDK对外的接口,供游戏去研发去调用。这里只有两个接口:登录和充值。

    public class GameSdk {
        public void login() {//登录接口
            //调用登录子系统的接口
            LoginManager loginManager = new LoginManager();
            loginManager.login();
        }

        public void pay(int momey) {//支付接口
            //调用支付子系统的接口
            PayManager payManager = new PayManager();
            payManager.pay(momey);
        }
    }
4.2 子系统
    //登录系统
    public class LoginManager {
        public void login() {
            System.out.println("打开登录界面");
            System.out.println("进行登录操作");
            System.out.println("登录成功");
        }
    }
    //支付系统
    public class PayManager {
        public void pay(int momey) {
            System.out.println("生成订单信息");
            System.out.println("选择支付方式");
            System.out.println("支付成功:" + momey + "元");
        }
    }
4.3 客户端测试:
     private void test() {
        //这里是游戏研发,通过调用login()和pay()就能调起登录和支付,无需关心支付是使用支付宝还是威信等,这是游戏SDK里面去做的事。
        GameSdk gameSdk = new GameSdk();
        gameSdk.login();
        gameSdk.pay(6);
    }
输出结果:
打开登录界面
进行登录操作
登录成功
生成订单信息
选择支付方式
支付成功:6元

5. 应用场景

6. 优点

7. 缺点

8. Android中的源码分析

外观模式在Android中应用也非常广泛,比如Context类,里面封装了很多方法,还是以startActivity()方法为例。实际上startActivity()是通过ActivityManagerService来实现的,ActivityManagerService我们应该都有耳闻,但是实际开发中一般都用不到,通过封装的方式,Context类隐藏了这些细节,我们只要简单调个方法就可以启动一个新的Activity
这就是外观模式在Android应用的例子了。当然这种应用比比皆是,我们平时开发也经常用的到。

相关文章阅读
Android的设计模式-设计模式的六大原则
一句话总结23种设计模式则
创建型模式:
Android的设计模式-单例模式
Android的设计模式-建造者模式
Android的设计模式-工厂方法模式
Android的设计模式-简单工厂模式
Android的设计模式-抽象工厂模式
Android的设计模式-原型模式
行为型模式:
Android的设计模式-策略模式
Android的设计模式-状态模式
Android的设计模式-责任链模式
Android的设计模式-观察者模式
Android的设计模式-模板方法模式
Android的设计模式-迭代器模式
Android的设计模式-备忘录模式
Android的设计模式-访问者模式
Android的设计模式-中介者模式
Android的设计模式-解释器模式
Android的设计模式-命令模式
结构型模式:
Android的设计模式-代理模式
Android的设计模式-组合模式
Android的设计模式-适配器模式
Android的设计模式-装饰者模式
Android的设计模式-享元模式
Android的设计模式-外观模式
Android的设计模式-桥接模式

上一篇 下一篇

猜你喜欢

热点阅读