下一个五年

talk is cheap,show me the code.!!!要重实践。找准定位和方向,不急不躁,持续投入。顺势而为。...

排序:
默认
按更新时间
按访问量

android缓存系列:DiskLruCache源码分析

disklrucache源码分析 #项目介绍 LRU是一种算法,disklrucache基于LRU算法实现的磁盘缓存方案。在很多开源项目中都可以看到它的身影,比如universal imageloader等等。 #简单用法(一个demo) 首先,这个框架会涉及到一个文件,叫做jour...

2016-09-12 23:28:07

阅读数:1007

评论数:0

为第三方提供的功能做抽象层封装

对第三方提供的功能做抽象层封装,这样可以极大的降低项目和第三方之间的耦合,出问题的时候或者替换第三方的时候可以比较简单的切换,而不是对着项目中的上千个引用点做替换。比如,电话会议,我们使用云视通、华为等等的电话会议,最好为这些api提供一个抽象层的封装。比如,android底层的网络请求框架,我们...

2016-08-28 17:28:54

阅读数:762

评论数:0

重构案例积累系列:get set方法重构

封装字段你的类中需要一个public的字段。把它声明为private,并提供相应的访问函数。php版class Test { private $day; /** * @return mixed */ public function getDay() ...

2016-08-10 12:26:03

阅读数:748

评论数:0

重构案例积累系列:以卫语句取代嵌套条件表达式

需求:验证qq是否合法:5-15位,不能以0开头,全是数字一般做法(不使用正则表达式): private static boolean checkQQ(String qq) { int len = qq.length(); if (len >= 5 &a...

2016-08-09 09:59:21

阅读数:1161

评论数:0

程序的扩展性建立在对业务需求变化的预见性之上

程序的扩展性建立在对业务需求的预见性之上

2016-08-01 22:15:33

阅读数:604

评论数:0

重构一书问题笔记

几个不需要看的地方以下几个比较特殊,感觉用处并没有那么广。Change value to Reference 将值对象改为引用对象??Change Reference to Value 将引用对象改为值对象???Duplicate Observed data 复制被监视数据???Change Un...

2016-07-17 08:56:41

阅读数:991

评论数:0

重构系列之重构的标志:《重构》代码的坏味道

重复代码 1. 表现:同一个类的两个函数含有相同的表达式。 方案:提炼函数。 2. 表现:两个互为兄弟的子类内含有相同表达式。 方案:函数上移,推入超类。 3. 表现:如果两个毫不相关的类出现重复代码。 方案:对其中一个类采用提炼类的方式,将重复代码提取到一个独立类中(类似工具类...

2016-07-10 22:14:46

阅读数:1424

评论数:0

重构系列之大型重构

Tease apart Inheritance 梳理并分解继承体系 某个继承体系同时承担两项责任 ,建立两个继承体系,并通过委托关系让其中一个可以调用另一个 .

2016-07-10 16:55:31

阅读数:792

评论数:0

重构系列之对象间的重构:《重构》处理概括关系

这里说到的概括关系指的就是继承关系。 Pull Up Field 字段上移 两个子类拥有相同的字段。将该字段移至超类。

2016-07-10 16:54:56

阅读数:940

评论数:0

重构系列之对象间的重构:《重构》对象之间搬移特性

在面对对象的设计中,“决定把责任放到哪儿”即使不是最重要的事情,也是最重要的事之一。我使用对象技术十几年了,但还是不能一开始就保证做对。这曾经让我很苦恼,但现在我知道,在这种情况下,可以运用重构,改变自己原先的设计。 Move Method 移动函数 类的行为做到单一职责 不要越俎代庖: 你的...

2016-07-10 16:54:21

阅读数:968

评论数:0

重构系列之对象行为的重构:《重构》简化函数调用

大力提倡的一种编程风格是:将复杂的处理分解成小函数。但是,如果做得不好,这会使你费尽周折却弄不清楚这些小函数各自的用途。要避免这种麻烦,关键就在于给函数起一个好名称。函数的名称应该准确表达它的用途。给函数命名有一个好办法:首先考虑应该给这个函数写上一句怎样的注释,然后想办法将注释变成函数名称。

2016-07-10 16:53:43

阅读数:961

评论数:0

重构系列之对象行为的重构:《重构》简化条件表达式

条件逻辑有可能十分复杂,因此本章提供了一些重构手法,专门来简化他们。 Decompose Conditional 分解条件表达式 你有一个复杂的条件语句。从if、then、else三个段落中分别提炼出独立函数。

2016-07-10 16:53:06

阅读数:959

评论数:0

重构系列之对象行为的重构:《重构》重新组织函数

函数过长或者逻辑太混乱,重新组织和整理函数的代码,使之更合理进行封装。 Extract Method 提炼函数 提炼函数:(由复杂的函数提炼出独立的函数或者说大函数分解成由小函数组成)你有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数,并让函数名称解释该函数的用途。

2016-07-10 16:52:11

阅读数:1236

评论数:0

重构系列之对象属性的重构:《重构》重新组织数据

Self Encapsulate Field 自封装字段 间接访问类的属性:你直接访问一个字段,但与字段之间的耦合关系逐渐变得笨拙。为这个字段建立取值/设值函数,并且只以这些函数来访问字段。

2016-07-10 16:51:25

阅读数:1108

评论数:0

建造者模式的简写方式分析

我们知道建造者模式一般由Product、Builder、Director三个模块组成。但是在一般的开发中,Director角色经常被忽略。而直接使用一个Builder来进行对象的组装,这个Builder通常是链式调用,它的关键点是每个setter方法都返回自身,也就是return this,这样就...

2016-07-04 18:12:59

阅读数:1414

评论数:0

设计模式与架构的核心概念乃是抽象

最近一年来一直在学习设计模式,上周在公司内部听了一个分享,当时一位同事提出设计模式的核心是封装,我强烈不赞同,在我看来设计模式的核心乃是抽象。  君不见,各种开源框架开源项目遍地都是抽象类和接口,每每此时,你心中肯定一万个草泥马在奔腾:是不是有病呀,整这么多接口和抽象类,也不嫌累。其实不是这样的,...

2016-06-30 19:41:25

阅读数:946

评论数:2

重构系列:减少成员变量个数,降低变量的作用范围

这条规则是自己在开发一个小的需求时的感悟。这个需求其实非常简单,不过要基于旧有的代码去开发,在我看了旧代码的时候,我晕了,旧代码中把很多明明只是temp的变量都提取成为了成员变量,代码读起来非常的费解,之后我尝试去掉了不必要的成员变量,整体流程清晰多了。

2016-06-29 20:57:23

阅读数:690

评论数:0

重构系列:概论

重构的目的是使软件更容易被理解和修改。你可以在软件内部做很多修改,但必须对软件可观察的外部行为只造成很小的变化,或甚至不造成变化。与之形成鲜明对比的是性能优化。和重构一样,性能优化通常不会改变组件的行为(除了执行速度),只会改变其内部结构。但是两者出发点不同:性能优化往往使得代码很难理解,但为了得...

2016-06-29 20:56:07

阅读数:624

评论数:0

SimpleNet网络框架源码分析

项目介绍  SimpleNet是何红辉开源的一个http网络请求库。该库借鉴了volley的实现思路,但为了更易于理解,裁掉了一些模块。整体适合学习http网络框架原理使用,难易度恰到好处。在此基础上再去读volley源码,会体悟更深刻一些。特点支持httpclient、httpurlconnec...

2016-06-27 16:37:42

阅读数:1166

评论数:0

面对对象原则:高内聚、低耦合

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低.每一个类完成特定的独立的功能,这个就是高内聚。耦合就是类之间的互相调用关系,如果耦合很强,互相牵...

2016-06-24 21:18:27

阅读数:2411

评论数:0

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