工作总结及建议

1.先需求评审,让相关人员了解自己的需求,和谁配合,有问题及时反馈,产品好及时调整方案。2.只认文档不认人。一个成功的项目不在于它带来了多少价值,而在于任何人的离职请假都不影响项目的正常运作。如何做到,写好文档是基础。(接口文档,产品需求文档,UI标注图,UI切图...,代码注释)       2...

2018-06-05 18:08:42

阅读数 1600

评论数 0

理财,预期收益

项目中,标的付款方式有,到期本息 、先息后本、等额本息、等额本金四种。这就意味着客户端在计算预期收益时要根据这一状态执行不同的算法。通过分析,到期本息 、先息后本为第一种算法,等额本息为第二种算法,等额本金为第三种算法。之后,在对这块代码进行了三次重构重构1:将三种算法写到工具类里,对应三种静态方...

2018-04-28 16:36:13

阅读数 111

评论数 0

一个Key对应多个Value

Map 一个key对应一个value,它可以满足大部分需求。但有时我要用到一个key对应多个value怎么办?1.普通做法  Map<Object,List<Object>> map=new HashMap&a...

2018-03-27 14:53:44

阅读数 4684

评论数 0

Volley,核心架构生产者消费者模式

晚上母亲做烙饼,熟了就放到桌子上,我和姐看到桌子上有饼就拿来吃,没了就等着。 这就是生产者消费者模式 母亲            生产者           做饼 桌子            产品容器       放饼 我和我姐    消费者            吃饼 生产者消费者模式是通...

2017-07-20 13:36:54

阅读数 171

评论数 0

DataProvider为项目提供基础信息

基础信息提供者接口public interface IDataProvider { /** * 项目环境类型(开发,测试,正式) * * @return */ Environment getAppEnvironment(); /*...

2017-07-19 09:45:48

阅读数 491

评论数 0

Activity,Fragment绑定生命周期,实现EventBus的自动注册、自动注销。

Glide中一个重要特性是Request可以随Activity或Fragment的onStart而resume,onStop而pause,onDestroy而clear,从而节约流量和内存,并且防止内存泄露。在阅读Glide源码后,果断将相关代码引入项目中并实现EventBus的自动注册、自动注销...

2017-07-18 15:59:17

阅读数 2367

评论数 0

桥接模式下的本地数据加载

项目中我们可以加载assets文件夹下的xml文件、txt文件、图片文件,也可加载sd卡下xml文件、txt文件、图片文件。如图 这里有两个变化的维度,文件来源和数据格式。我将抽象与实现分离实现本地数据加载。 代码:数据public interface Data { /** ...

2017-07-17 16:14:32

阅读数 157

评论数 0

总结TextWatcher两种使用场景

1. 根据观察多个输入框(必填)是否输入内容,控制按钮点击状态。public class ButtonWatcher { private final Button btn; //控制按钮 private final EditText[] views; //输入框数组 p...

2017-07-17 10:32:58

阅读数 164

评论数 0

通过递归与访问者模式过滤文件

在看Fresco源码时发现了一个遍历文件夹的小模块,职责清晰、设计精妙、并有着很高的拓展性,在研究之后果断代码收藏。 思路:首先利用递归遍历整个目录,如果是文件,访问者执行访问。 文件树 public class FileTree { /** * 遍历目录的文件树,并接收一...

2017-07-12 10:13:08

阅读数 186

评论数 0

利用模板模式封装APP版本更新模块

在项目中做版本检查模块流程如下 1. 检查版本 2. 显示版本提示 3. 下载apk 4.  安装 于是我将相关代码进行重构,定义版本更新流程的骨架而将一些方法延迟到子类去实现。 public abstract class CheckVersion { public static fi...

2017-07-11 16:37:00

阅读数 145

评论数 0

利用中介者模式与观察者解决购物车与商品列表联动问题

由于项目保密性只介绍出现的问题以及我解决的思路。 说明: 商品分类列表:显示商品分类名称以及此分类下放入购物车商品的总数量。 商品列表:显示商品信息和两个操作按钮“+”,“-”以及加入购物车数量。 购物车列表:显示购物车商品信息和两个操作按钮“+”,“-”以及数量。 搜索列表:显示商品信息和两...

2017-07-11 10:14:57

阅读数 894

评论数 0

利用责任链模式构建数据校验模块

这是一个比较简单的表单校验,利用责任链模式将多个数据校验以“链”的形式串联起来。 目前支持三种数据校验(可拓展) 1.空数据校验 2.数据格式校验 3.非必填项校验 代码:定义校验器 public interface Verify { //校验 boolean doVerif...

2017-07-03 11:57:42

阅读数 684

评论数 0

利用代理模式隔离Android第三方组件(图片加载库,网络库)

利用代理模式隔离

2017-06-23 13:05:46

阅读数 203

评论数 0

面向切面编程(aop),实现Android网络请求

面向切面编程

2017-06-23 13:03:06

阅读数 215

评论数 0

利用组合模式与访问者模式实现Android树形控件(多层级,可拖拽)

先上图

2017-06-23 11:55:24

阅读数 191

评论数 0

Launcher3源码解析

由于工作的原因,开始了Launcher的学习和开发。我拿到的源码是Android N 的Launcher3的源码。想的是一步一步对Launcher3的源码进行分析并记录,也是为了让自己遗忘的时候可以看看。 下面正式开始Launcher3的源码分析,首先介绍一下主要的几个类: Launcher:...

2018-12-28 10:03:55

阅读数 145

评论数 0

Spring Ordered接口

        Java中的对象排序都会跟Comparable Comparator 这两个接口扯上关系,下面我们要说说Spring排序接口Ordered。public interface Ordered { /** * Useful constant for the highest pr...

2018-04-11 14:25:23

阅读数 272

评论数 0

带边框(Border)的LinearLayout

先看一下这样一个简单的布局,所展示的内容很少,上下两条分割线,两个文本。1.普通做法<?xml version="1.0" encoding="utf-8"?> &l...

2018-03-29 15:01:41

阅读数 431

评论数 0

适配器模式,手机充电器

        充电器、变压器、转接头这些都是我们所熟悉的。他们的作用都是将一些现有的、不匹配的、无法改变的进行转换,以满足我们的需求。以手机充电器为例,上世纪60年代后期,中国统一使用220V电压,手机充电一般5V左右,两者无法匹配。我们也无法改变现有的条件。于是充电器就发挥了它的作用,它可以将...

2018-03-27 17:21:51

阅读数 144

评论数 0

备忘录模式,拍电影

大家都知道拍电影的时候如果某段拍的不好演员会NG多次,当导游说重拍的时候场记会记录这段的布景,台词,演员的动作表情。等到重拍的时候恢复到开始状态。

2017-08-08 10:28:18

阅读数 146

评论数 0

提示
确定要删除当前文章?
取消 删除