设计模式

[TOC]

设计模式

  1. 走进app框架

    bat面试题:

    手写一个单例设计模式?分析一下它是怎么工作的
    熟练运用常用的设计模式
    理解设计模式

    熟悉设计模式的思想和设计模式

    工厂设计模式

门面模式:

单一职责, 一个类或者一个接口只负责位唯一
定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,们面膜模式提供一个高层次的接口,是的子系统更易于使用;

目的:门面对象是通往外界子系统内部的唯一通道;通过门面对象降低程序耦合;

一步一步建成的, view层和sdk层进行隔离,这样达到结构

volley的思想 get post put upload down

volley 的缺点 不支持大图片的加载

不符合开闭原则:对修改关闭,对扩展开放

代理模式:

通过代理来间接访问目标对象,防止直接访问目标对系统代理不必要的复杂性;通过代理对象对原有的业务进行增强

接口是行为规范,能够干什么事情,接口进行来规定

策略设计模式,是已经知道有什么策略了
而代理模式,并不需要知道代理者是谁
架构师,就是让代码越写越简单

易拓展,易维护了

专业人士之间交流方便;易维护;设计模式是编程经验的总结

FFmpeg

请教,

volley源码解析

产考: volley源码解析

一 前言

1.为了巩固android网络框架中常见的多线程,io,设计模式,sdk开发等方面

在标准的网络协议中,当人把网络分不同层次进行开发,每一层分别负责不同的通信功能,同事每层之间能简单交互,业内比较规范的说法”高内聚,低耦合”.比如TCP/IP,是一组不能层次协议的多个组合:

应用层 Telnet,FTP和e-mail等

运输层 Tcp和UDP

网络层 IP,ICMP和IGMP

链路层 设备驱动程序及接口卡

volley网络框架分层:

应用层: StringRequest Request Volley

控制器:RequestQueue CacheDispatch NetworkDispatch ResponseDelivery

网络层:HttpStack Request Response NetWork NetworkResponse

基础层:Cache VolleyLog VolleyError RetryPolicy

二、基础层

我们先看基础层,它上层都会需要依赖它这一层,保存代码的健壮性。

在基础层,我们能学习到:

  1. 缓存数据模块:通用的缓存策略。

  2. 日志模块:灵活的对时间打点。

  3. 异常模块:统一的异常处理。

  4. 重试机制:网络条件差情况下能够提供重新请求的功能。

2.1 缓存模块

######2.1.1 Velloy的缓存机制

遵循http缓存协议

概括的说http缓存协议利用http请求头中的cache-control和eTag字段进行是否缓存,缓存时间的判断。主要过程如下: