- 博客(75)
- 收藏
- 关注
转载 常见的设计模式与原则
六大原则1、单一职责原则通俗的说:即一个类只负责一项职责2、里氏替换原则通俗的说:当使用继承时。类B继承类A时,除添加新增功能P2外,尽量不要重写父类A的方法,也尽量不要重载父类A的方法。如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。子类可以拓展父类的功能,但不能改变父类原有的功能3、依赖倒置原则通俗的说:在 java 中,抽象指的是接口或者抽象类,细节就是具体的实现类,使用接口或者
2016-09-24 10:18:09
330
原创 Request请求类的封装继承与应用
分析封装一个Request请求基类,内容有:第一次加载数据(首先从缓存里加载,如果没有再请求服务器加载数据)重新加载数据(直接请求服务器加载数据)回调接口(如果成功加载或到数据或失败,则通知需要此数据的类,加载完成)抽象出一个数据解析接口,留给不同请求类处理,如书架请求类,书城请求类,他们都有各自的Json数据
2016-09-07 07:27:21
528
原创 ViewPager+Fragment布局框架
分析 先UI布局,顶部为菜单栏,中间为ViewPager,底部为RadioGroup ViewPager+Fragment MyAadapter继承FragmentPagerAdapter MyActivity继承自FragmentActivity BaseFragment,于继承自它的其它Fragment 根据选择不同的RadioGroup插入不同Fragment
2016-09-05 21:10:43
460
原创 发送网络请求与读写缓存搭配逻辑
分析 当进入软件时,首先先读取缓存 当缓存有数据,则读取Cache显示数据 如果没有数据,则发起服务器网络请求,获得服务器数据后将数据写入缓存 如果有下拉刷新操作,则直接发起服务器网络请求
2016-09-03 15:27:02
338
原创 读取与写入Cache
配置读写权限 写文件工具类,主要实现获得指定路径的字符串,例如缓存或图片文件夹 判断是否存在SD卡 如果有,则指定一条绝对路径,例如( path = /sd/ReadTest/”str”) 如果没有,则指定项目安装包下的缓存,例如(Paht = /data/data/项目安装包/cache) 根据指定路径与文件名称,构建读写文件 根据读写文件,构建读写文件流
2016-09-03 15:20:00
679
原创 发送网络请求获取数据与Handler刷新UI
分析 添加配置 1. jar包: xUtil 2. manifests: 加上网络权限 <uses-permission android:name="android.permission.INTERNET" /> 3. build.gradle : android { useLibrary 'org.apache.http.legacy' }
2016-09-02 20:30:33
698
原创 ScrollView
分析 HorizonScrollView内部装的控件只能有一个,所以用LinearLayout将ImageView包装住,剩下其它的看代码就懂
2016-09-02 08:19:06
251
原创 集合、泛型、线程、final、回调
健表与健值对、泛型(泛型的好处,尝试用泛型重构代码)、线程与并发、“值不可改变”final关键字的理解、Java回调
2016-08-26 14:54:27
373
原创 数组排序 —— 桶排序算法思想应用(相邻两数最大差)
相邻两数最大差有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。给定一个int数组A和A的大小n,请返回最大的差值。保证数组元素多于1个。
2016-08-17 22:55:37
536
原创 数组排序 —— 快排算法思想应用(三色排序)
三色排序有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。
2016-08-17 20:56:29
366
原创 数组排序 —— 常用基础数组排序算法(冒泡、选择、插入、归并、快速、堆、希尔、计数、基数排序)
冒泡、选择、插入、归并、快速、堆、希尔、计数、基数排序
2016-08-13 10:04:51
730
原创 常用基础数组排序算法
冒泡排序解题思路1、1 ~ N个数字,”自己”与”下一位”比较,选中最大的放在”下一位”,再以”下一位”为”自己”与”下一位”比较,直到选出最大的数字放在最后 2、1 ~ N-1 个数字,重复第一步骤操作 ….. n、直到剩下最后一个数字 代码思路代码选择排序解题思路1、从1 ~ N 个数字中选择最小的数字放在”第一个” 2、从2 ~ N 个….(重
2016-08-13 09:58:57
453
原创 数组排序 —— 堆排序算法的应用(小范围排序、重复值判断)
小范围排序已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。
2016-08-12 14:32:31
1079
原创 23种设计模式(15):备忘录模式
定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态类图多状态多备份备忘录 通用代码演示的例子中,Originator类只有一个state变量需要备份,而通常情况下,发起人角色通常是一个javaBean,对象中需要备份的变量不止一个,需要备份
2016-06-01 22:17:16
283
原创 23种设计模式(14):解释器模式
类图场景在银行、证券类项目中,经常会有一些模型运算,通过对现有数据的统计、分析而预测不可知或未来可能发生的商业行为。模型运算大部分是针对海量数据的,例如建立一个模型公式,分析一个城市的消费倾向,进而影响银行的营销和业务扩张方向,一般的模型运算都有一个或多个运算公式,通常是加减乘除四则运算,偶尔也有指数、开方等复杂运算。具体到一个金融业务中,模型公式是非常
2016-06-01 21:24:56
291
原创 23种设计模式(13):迭代器模式
类图迭代器模式的结构抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。具体容器:就是抽象容器的具体实现类,比如List接口的有序列表实现ArrayList,List接口的链表实现LinkList,Set接口的哈希列表的实现HashSet等。抽象迭代器:定义遍历元素所需要的方法
2016-06-01 19:59:44
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人