- 博客(10)
- 收藏
- 关注
原创 读《重构-改善既有代码的设计》第八章:重新组织数据
第八章:重新组织数据1、Self Encapsulate Field(自封装字段)2、Replace Data Value With Object(以对象取代数据值)3、Change Value to Reference(将值对象改为引用对象)4、Change Reference to Value(将引用对象改为值对象)5、Replace Array with Object(以对象取代数组)6、D...
2018-12-11 23:01:51
231
原创 记录【八皇后问题】解法过程,实现n皇后
八皇后问题:有一个八行八列的棋盘,有八个皇后棋子,这八个棋子摆在这八行八列的棋盘上。 而且八个皇后中的任意两个不能处于同一行、同一列,或同一斜线上。 本文地址: 通过问题我们可以看出,在棋盘上每行每列只能有且只有一个皇后。 假如第一颗棋子落在(0,i)点上,那么第二行的棋子落在(1,j)点,其中 j≠i & j≠i-1 & j≠i+1,共有5或6中方法。以此类推。 其...
2018-12-09 23:41:13
367
原创 数组随机排序 & 洗牌算法
文章目录[1、Fisher-Yates 算法]()[2、* Knuth-Durstenfeld 算法]()[3、Inside-Out 算法]()[4、抽牌法]()[* 蓄水池抽样 算法]() 1、Fisher-Yates 算法 原理: 1、写下从 1 到 N 的数字 2、取一个从 1 到剩下的数字(包括这个数字)的随机数 k 3、从低位开始,得到第 k 个数字(这个数字还没有被取出),把它写在独立...
2018-12-08 19:16:43
324
原创 读《重构-改善既有代码的设计》第七章:在对象之间搬移特性
第七章:在对象之间搬移特性1、Move Method(搬移函数)2、Move Field(搬移字段)3、Extract Class(提炼类)4、Inline Class(将类内联化)5、Hide Delegate(隐藏“委托关系”)6、Remove Middle Man(移除中间人)7、Introduce Foreign Method(引入外加函数)8、Introduce Local Extens...
2018-12-07 00:11:33
312
原创 读《重构-改善既有代码的设计》第六章:重新组织函数
第六章:重新组织函数1、Extract Method(提炼函数)2、Inline Method(内联函数) 1、Extract Method(提炼函数) 将一段可以被组织在一起并可以独立出来的代码放进一个独立函数中,并让函数名称解释该函数的用途。 如果每个函数的颗粒度都很小,那么函数被复用的机会就更大,复写也会更容易些,也会使高层函数越多企鹅来就像一系列的注释。 private void P...
2018-12-04 23:32:23
371
原创 读《重构-改善既有代码的设计》第四章:构筑测试体系
第四章:构筑测试体系1、测试代码的价值2、添加测试 1、测试代码的价值 你工作的时间中写代码的时间只占很少的一部分,另一些时间最多的花在调试上。所以==每个类都应该有一个测试函数,并以它来测试自己这个类== Tips:确保所有的测试都完全自动化,让他们检查自己的测试结果。 Tips:编写测试代码的时机使在开始变成之前。 2、添加测试 编写对功能的测试,而非对函数的测试 测试用力在边界条件那 ...
2018-12-03 22:05:48
246
原创 读《重构-改善既有代码的设计》第三章:代码的坏味道
第三章:代码的坏味道1、Duplicated Code (重复代码)2、Long Method(过长函数)3、Large Class(过大的类)4、Long Parameter(过长参数列)5、Divergent Change(发散式变化)6、Shotgun Surgery (散弹式修改)7、Feature Envy(依恋情结)8、Data Clumps(数据泥团)9、Primitive Obse...
2018-12-02 23:49:00
419
原创 读《重构-改善既有代码的设计》第二章:重构的原则
第二章:重构原则何为重构为何重构何时重构重构与设计重构与性能 何为重构 对软件内部结构使用重构手法的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 重构的目的是使软件更为容易被理解和修改。 1.容易阅读 2.所有逻辑都只在唯一地点指定 3.新的改动不会危机现有行为 4.尽可能简单表达条件逻辑 为何重构 改进软件设计、消除重复代码 使软件更容易理解 帮助找...
2018-12-02 13:38:23
194
原创 读《重构-改善既有代码的设计》第一章
读《重构-改善既有代码的设计》第一章重构的定义:tips1:测试机制:重命名: 重构的定义: 重构是在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构 重构技术就是以微小的步伐修改程序,如此可使你犯下错误时,很容易便可发现它。 tips1: 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特...
2018-12-02 11:45:07
142
原创 记录一次解决 'xxx:processDebugManifest'. > Manifest merger failed with multiple errors, see logs
在Android Studio 3.0 会有 Gradle Console 输出相信错误信息,但是升到3.2版本后就没了,导致很难定位问题(刚接触AS), 今天便遇到一个问题,困扰了一下午,各种百度,然鹅并未解决,最后灵机一动 解决了 第一步: 在Terminal 输入 gradlew processDebugManifest --stacktrace 在打印的log中会有一些错误信息...
2018-11-03 18:47:19
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人