- 浏览: 231213 次
- 性别:
- 来自: 广州
-
最新评论
-
飞出四季做的茧:
只是转移了恶心的switch吧,并没有去除掉
java 代码重构-第一章(使用策略模式,把恶心的switch代码去掉...) 一 -
niqingyang:
https://www.cnblogs.com/xueduan ...
百度搜索url编码解密(url encode decode) -
niqingyang:
function urldecode(str, charset ...
百度搜索url编码解密(url encode decode) -
ttdeye:
private Jedis getJedis(){if(jed ...
spring 结合 Redis 例子,简单入门例子 -
adair_java:
最近手机baidu,搜索关键字编码好像加密了比如这个:http ...
各搜索引擎referer关键字,编码
文章列表
oyhk 学习笔记
好了费话不多说了,介绍下spring 结合redis是怎么操作数据的 这里我用了maven管理,由于简单嘛,依赖下包就行了..不用单独去依赖包,成了我的习惯
好了,下面是pom的代码
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.or ...
上一篇文章:java 代码重构-第一章(使用策略模式,把恶心的 switch代码去掉...) 一
下一篇文章:java 代码重构-第一章(结语...目录,源代码下载)
上一篇文章,没有把switch代码去掉,现在再继续去做..这里正式运用策略模式
我的作法是一次取出一个case 分支,在相应的class内建立一个覆写函数(overriding method)。先从 RegularPrice 开始:
RegularPrice
/**
* 获取普通电影收费
*
* @param daysRented
* @return
...
上一篇文章:java 代码重构-第一章(终于…我们来到继承(Inheritance))
下一篇文章:java 代码重构-第一章(使用策略模式,把恶心的switch代码去掉...) 二
现在我加入新class,并在Price 对象中提供「与型别相依的行为」。为了实现这一点,我在Price 内加入一个抽象函数(abstract method ),并在其所有subclasses 中加上对应的具体函数(concrete method):
首先我创建一个类
Price
package com.mkfree.refactoring.shap1;
/**
* 金额
* ...
上一篇文章:java 代码重构-第一章(运用多态(Polymorphism)取代与价格相关的条件逻辑)
下一篇文章:java 代码重构-第一章(使用策略模式,把恶心的switch代码去掉...) 一
终于……我们来到继承(Inheritance)
我们有数种影片类型,它们以不同的方式回答相同的问题。这听起来很像subclasses 的工作。我们可以建立Movie 的三个subclasses ,每个都有自己的计费法(图1.14)。
这么一来我就可以运用多态(polymorphism)来取代switch 语句了。很遗憾的是这里有个小问题,不能这么干。一部影片可以在生命周期内修 ...
上一篇文章:java 代码重构-第一章(去除临时变量)
继续吧...
运用多态(Polymorphism)取代与价格相关的条件逻辑
前述有些重构码系从上版本里头拷贝过来——主要是循环设置部分。更深入的重构动作可以清除这些重复代 ...
oyhk 学习笔记
本文章来自:百度搜索url编码解密(url encode decode)
前天在公司做了关于搜索引擎的referer的取值遇到了问题,其实我们想做什么样的需求呢?
需求是这样的,首先我们在搜索引擎,输入关键字去搜索,例如我 ...
java 代码重构-第一章(提炼代码)
- 博客分类:
- java
上篇文章说了,类做回自己的事
上一篇文章:java 代码重构-第一章(类自己该做自己的事)
下一篇文章:java 代码重构-第一章(去除临时变量)
提炼「常客积点计算」代码
下一步要对「常客积点计算」做类似处理。点数的计算视影片种类而有不同,不过不像收费规则有那么多变化。看来似乎有理由把积点计算责任放在Rental class 身上。首先我们需要针对「常客积点计算」这部分代码(以下粗体部分)运用 Extract Method 重构准则。
再一次我又要寻找局部变量。这里再一次用到了each ,而它可以被当作参数传入新函数中。另一个临时变量是frequentRenterPoin ...
java 代码重构-第一章(去除临时变量)
- 博客分类:
- java
上一篇文章:java 代码重构-第一章(提炼代码)说到了代码的提炼,把一些代码提炼出来写成一个方法,然后再去调用它,好了不多说了,想了解看上一篇吧
去除临时变量
正如我在前面提过的,临时变量可能是个问题。它们只在自 ...
java 代码重构-第一章(类自己该做自己的事)
- 博客分类:
- java
重构小提示:重构技术系以微小的步伐修改程序。如果你犯下错误,很容易便可发现它。
上一篇文章:java 代码重构-第一章(分解并重组statement())
下一篇文章:java 代码重构-第一章(提炼代码)
上次重构了statement(),类看起来,感觉舒服了很多是吧?那下面我们再一步步的做下去...
现在,我已经把原本的函数分为两块,可以分别处理它们。我不喜欢amountFor() 内的某些变量名称,现在是修改它们的时候。
下面是原本的代码。
private int amountFor(Rental each) { // 计算一笔租片费。
...
上一篇文章:java 代码重构-第一章(起点)
下一篇文章:java 代码重构-第一章(类自己该做自己的事)
2.1 把switch代码在方法中抽出
第一个明显引起我注意的就是长得离谱的statement() 。每当看到这样长长的函数,我就想把它大卸八块。要知道,代码区块愈小,代码的功能就愈容易管理,代码的处理和搬移也都愈轻松。
重构过程的第一阶段中,我将说明如何把长长的函数切开,并把较小块的代码移至更合适的class 内。我希望降低代码重复量,从而使新的(打印HTML 报表用的)函数更容易撰写。
第一个步骤是找出代码的逻辑泥团(logical clu ...
java 代码重构-第一章(起点)
- 博客分类:
- java
oyhk 学习笔记
对于重构,大家应该都一些认识了吧...下面一个小例子,让你们感觉感觉代码重构是什么
下一篇文章:java 代码重构-第一章(分解并重组statement())
1.1 起点
实例非常简单。这是一个影片出租店用的程序,计算每一位顾客的消费金额并打印报表(statement)。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租赁时间和影片类型算出费用。影片分为三类:普通片、儿童片和新片。除了计算费用,还要为常客计算点数;点数会随着「租片种类是否为新片」而有不同。
我以数个classes 表现这个例子中的元素。图1.1是一张UML class ...
HK 学习笔记
下面是利用 maven yuicompressor-maven-plugin 打包静态资源文件
费话不多说了,直接看配置文件就好了
现在我用的是 yuicompressor-maven-plugin 1.3.0,如果需要升级了,大家自己修改版本吧
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocat ...
在做商务E流量分析的时候,需要实现一个功能:如果访客是通过搜索引擎的搜索找到客户网站的,要统计出访客是通过哪个搜索引擎访问到页面,并且统计出是通过 什么关键字搜索到该网站的。在网上google一下,发出对这方面的描述文档还是比较少的,在做这个功能的过程中有些经验给人家分享一下。实现这样的功能,基本原理是获取到来源地址,然后分析其中的内容,把所需要的搜索引擎名称和关键字取出。获取来源地址很简单,在servlet 中可以通过HttpServletRequest.getHeader("Referer")方法取得,jsp页面中可以通过 request.getHeader(" ...
HK 学习笔记
好久都没有写过博客了,自从换了公司后,一直在忙...时间就更少了,但是学到的东西却是非常多!今天我把学到的东西记下来,当做自己的一个笔记吧,也算是一个学习的心得
搜索引擎架构设计
介绍下我这次说的搜索引擎的主要技术
node.js Sphinx oracle mongodb 下面简单介绍下
node.js 它是一个号称无阻塞的轻量级框架
主要编写语言是javascript
详细:http://nodejs.org
Sphinx
相信大家对它已经很熟悉了吧,是一个基于SQL的全文检索引擎 ,它可以提供比数据库本身更 ...
javascript相除
- 博客分类:
- JavaScript
Math.round(7/2) 7%2 相当于 求余数
parseInt(a/b) 直接相除 (跟java的一样)