【架构设计】
NullPoints
努力的人,运气总不会太差
展开
-
时间复杂度的计算
转载自http://univasity.iteye.com/blog/1164707时间复杂度的定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的转载 2016-08-03 13:38:09 · 811 阅读 · 0 评论 -
设计模式--[1]工厂模式
工厂模式介绍就是 工厂—生产–>产品在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式.工厂模式,就是: 提供创建对象的功能,不需要关心具体实现.类似于,接口隔离(模块和模块):不需要知道具体的构建过程,就能得到相应的结果. 例如, Bitmap bitmap=BitmapFactory.decodeXXX(); decodeXXX 其实是创建了不同的bitmap.不用关心如何原创 2016-12-23 09:14:36 · 699 阅读 · 0 评论 -
设计模式--[8]模板模式
模板模式asynctask 就是模板模式定义:定义一个操作流程的骨架,然后将一些步骤的具体实现放到子类中.意图有一些共用的方法,却在每一个子类都要重写这一方法.实现流程1.抽象类中定义抽象方法,a,b,c. 2.抽象类中定义一个final方法,方法体为a,b,c的组合. 3.子类继承抽象类,并重写抽象方法.应用举例android中的Asynctask是一个抽象类,其中prepare,backgr原创 2017-01-05 14:42:19 · 324 阅读 · 0 评论 -
设计模式--[9]观察者模式
观察者模式定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。应用场景有一个事件发生改变,需要通知其他多个对象时.更多的应用于异步回调场景.代码实现UML类图结构代码实践1.Subject主题public class Subject { /** * 事件持有观察者的集合 */ private List<Obs原创 2017-01-05 14:46:19 · 353 阅读 · 0 评论 -
设计模式--[4]建造者模式和AlertDialog源码解析
建造者模式即按照这 我的理解是 :对同一个类型按照顺序对不同的属性进行赋值 然后完成建造,得到对象的过程. 就像建房子,建造者就是建筑工,产品就是房子.建筑工会对这个房子的属性:大门,地板,墙面等进行创建.完成后,交付房子.不同于,工厂模式,它是针对不同的类型的对象进行生产,详情请参照我的博客–工厂模式,就像创建房子,关注于建造者模式注重于房子的 零部件的组装的顺序,而工厂模式则注重于创建怎样的原创 2016-12-28 16:35:42 · 574 阅读 · 0 评论 -
设计模式--[10]状态模式
状态模式概述当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。使用场景 行为随状态改变而改变的场景。优点封装了转换规则方便添加新的状态将状态转换的逻辑和状态对象合成一体,代替复杂的if else缺点产生大量对象结构复杂,转换逻辑不能一目了然类图解析环境Context 它定义了客户程序需要的接口并维护一个具体状态角色的实例,将与状态相关的操作委托给当前的Concre原创 2017-01-06 11:28:09 · 329 阅读 · 0 评论 -
设计模式--[5]责任链模式和Android事件分发
我的理解:一种行为模式,为请求创建一个接收者的对象链.这样就避免,一个请求链接多个接收者的情况.进行外部解耦.类似于单向链表结构.应用场景:JS 中的事件冒泡,jsp servlet 的 Filter,还有android中的事件传递机制;优势:降低耦合度。它将请求的发送者和接收者解耦。简化了对象。使得对象不需要知道链的结构。增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次 序原创 2016-12-30 10:47:12 · 1665 阅读 · 0 评论 -
设计模式--[11]策略模式
概述所谓策略,指的是一个类的行为或其算法可以在运行时更改. 就像出行选择的交通工具,要根据自己的情况,可以自由切换自行车,汽车,火车等等.三个角色环境Context 持有策略strategy的引用,通过引用来调用某ConcreteStrategy定义的算法。抽象策略Strategy 定义所有支持的算法的公共接口具体策略ConcreteStrategy 实现的策略类类图代码实现1.抽象策略接口pub原创 2017-01-09 15:43:37 · 321 阅读 · 0 评论 -
设计模式--[12]迭代器模式
迭代器模式定义提供一种方法访问一个容器中的元素,而又不暴露该对象的内部细节.使用场景遍历一个聚合对象,但是目前,java中有Collection集合,我们可以直接使用.优点:迭代一个对象时候,无需修改源代码.类图体现抽象容器:一个接口,里面有增删改查的方法名,持有iterator()方法.例如java中的Collection接口.具体容器:实现抽象容器,实现其中方法,以及重写iterator方法原创 2017-01-09 15:45:05 · 336 阅读 · 0 评论 -
DBHelper--面向对象的SQLite框架
DBHelper面向对象的SQLite框架To Use1.In Gradlecompile 'me.ccj.dbhelper:dbhelper:1.0.0'2.In Maven<dependency> <groupId>me.ccj.dbhelper</groupId> <artifactId>dbhelper</artifactId> <version>1.0.0</versio原创 2017-02-28 20:50:33 · 699 阅读 · 0 评论 -
设计模式--[7]解释器模式
【工匠若水 http://blog.csdn.net/yanbober】 阅读前一篇《设计模式(行为型)之访问者模式(Visitor Pattern)》http://blog.csdn.net/yanbober/article/details/45536787概述解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解转载 2017-01-04 16:22:49 · 380 阅读 · 0 评论 -
设计模式--[6]命令模式
命令模式定义命令模式:将请求封装成对象,以便使用不同的请求、日志、队列等来参数化其他对象。命令模式也支持撤销操作。举个例子就像领导命令员工工作,,,领导让他开车,去搬砖.然后回复领导完成的结果.android登录的时候,登录,注册两个功能. 用户的操作就是命令,他不管你如何实现,解耦隔离所谓解耦隔离,,其实就是让两者互不相干.即登录的命令和结果,和如何登录进行分类. 登录只关心结果,而如果登录更注原创 2017-01-04 15:57:53 · 362 阅读 · 0 评论 -
Android系统架构解析
ps:别人写的东西,好多人都写的"原创"都搞不清是谁写的了,自己觉得挺不错的,所以放到自己这里以便翻阅.[转载自http://www.cnblogs.com/lijunamneg/archive/2013/01/18/2866953.html]Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的a转载 2016-08-31 09:52:01 · 890 阅读 · 0 评论 -
精讲Java内存模型
Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。原始的Java内存模型存在一些不足,转载 2016-11-03 11:39:30 · 1142 阅读 · 0 评论 -
Android高级开发必读书单
jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图。另一份 Android 开发学习路线图。可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiaohua的呼吁下,我花了些时间,把这篇大牛的推荐清单编辑成了Markdown格式,方便大家浏览,学习。有一些链接可能还不是特别准确,因为我只能根据图片上的书或者资源的名字去Google可能的转载 2016-11-11 11:57:44 · 5939 阅读 · 0 评论 -
[数据结构]--jdk1.8中HashMap源码解析
HashMapHashmap是java集合中,比较重要的一种集合框架. 特点:键值对存储,key可以为null,查找速度快.但是线程不安全. hashMap的类关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {MaphashMap的数据结构原创 2016-10-12 15:38:55 · 920 阅读 · 0 评论 -
深入Android消息机制
[传送门]额,感觉csdn的排版有点难看,大家如果觉得排版难看,那就去简书看吧~看见的只是表象,当你深入其中的时候,你会发现一个不一样的世界~**android的消息机制其实是分为java层的Message派发和Native层的 派发以及处理来自所监控的文件句柄的事件**推荐两个在线源码阅读工具:1.http://androidxref.com2,http://www.grepcode.com/1原创 2016-12-01 16:07:43 · 4317 阅读 · 0 评论 -
非侵入式AOP监控之——AspectJ使用
摘要: > 一引言 > 二什么是AspectJ > 2.1 它只是一个代码编译器 > 2.2 它是用来做AOP编程的 > 2.3为什么要用AspectJ > 三AspectJ原理与运用 > 3.1 基本原理 > 3.2 使用方式 > 3.2.1 纯注解方式 > 3.2.2 AspectJ语言 > 3.2.3 结合自定义注解使用 > 四 使用AspectJ进行监听方法执行耗时 > 五转载 2016-11-23 11:45:14 · 8456 阅读 · 1 评论 -
一次HTTP请求的背后
排版有点问题,如果目录不够清晰……[这里是简书博客地址传送门]网络抓包工具:FiddlerWireShark相关概念网络七层模型应用层提供网络管理、文件传输、事务处理,Telnet、FTP、HTTP、SNMP、DNS,HTTPSHTTPhttp0.9 是http协议的第一个版本,只有普通的get请求.http1.0 引入post请求,让HTML的表单可以提交表单. 引入加入请求头Heade原创 2016-12-13 18:59:56 · 4115 阅读 · 0 评论 -
设计模式--[2]原型模式
原型模式原型模式中,谁涉及到对象的克隆,对象的引用和hashcode,以及原型的思想和创建. 在这里,自己将自己的理解和实践记录下来,和大家一起学习.接口Cloneable Note that this interface does <i>not</i> contain the <tt>clone</tt> method. * Therefore, it is not possible to c原创 2016-12-26 16:27:44 · 354 阅读 · 0 评论 -
设计模式--[3]单例模式
单例模式介绍单例模式是java创建性模式的一种,提供了一种创建对象的最佳模式.关于指令集乱序:在堆中的对象,还没有完全实例完成,就将地址交给了引用设计意图:保证一个类只有一个实例,减小内存开支,减少资源多次链接(当一个类是作为资源链接,保证这个实例为唯一实例,而不是链接一次,新建一个实例,这样能有效减少系统开销).设计思想:1.单例类只能有一个实例.2.单例必须自己创建自己的唯一实例,且构造函数私有原创 2016-12-27 16:28:22 · 409 阅读 · 0 评论 -
Android 组件化
项目地址https://github.com/ccj659/clean-project-architecture 前言随着业务的增多,迭代版本的增加, 模块化开发, 业务解耦, 业务独立进行测试,编译,运行,想想都惊喜~如果不想忍受超长的编译时间,不想忍受类之间的强耦合,受够了满屏的不相干的文件,那么…..为了你的”代码洁癖”,还有项目的未来, 组件化, 势在必行…..Android 业务组件化项目原创 2017-08-22 14:38:05 · 555 阅读 · 0 评论