概念:本文中的“分解依赖” 是指对部分不满足我们要求的类和方法进行依赖分解,通过装饰器来达到我们需要的功能。
正文:正如下面代码所示,如果你要在你的代码中加入单元测试但有一部分代码是你不想测试的,那么你应用使用这个的重构。下面的例子中我们应用静态类来完成某些工作,但问题是在单元测试时我们无法mock静态类,所以我们只能引入静态类的装饰接口来分解对静态类的依赖。从而我们使我们的调用类只需要依...
分类:
其他好文 时间:
2015-07-21 10:39:47
阅读次数:
119
概念:本文中的把某些计算复杂的过程按照功能提取成各个小方法,这样就可以使代码的可读性、维护性得到提高。
正文:如下代码所示,CalculateGrandTotal方法里面包含了多个逻辑,第一计算subTotal 的总和,第二subTotal 要循环减去discount,也就是计算Discounts,第三就是计算Tax。所以我们可以根据功能把他们拆分成三个小方法。
using Sy...
分类:
其他好文 时间:
2015-07-21 10:36:56
阅读次数:
113
概念:本文中的“提取接口” 是指超过一个的类要使用某一个类中部分方法时,我们应该解开它们之间的依赖,让调用者使用接口,这很容易实现也可以降低代码的耦合性。
正文:如下代码所示,RegistrationProcessor 类只使用到了ClassRegistration 类中的Create方法和Total 字段,所以可以考虑把他们做成接口给RegistrationProcessor调用。
n...
分类:
其他好文 时间:
2015-07-21 10:38:10
阅读次数:
99
概念:本文中的“使用委派代替继承”是指在根本没有父子关系的类中使用继承是不合理的,可以用委派的方式来代替。
如下代码所示,Child 和Sanitation (公共设施)是没有逻辑上的父子关系,因为小孩不可能是一个公共设施吧!所以我们为了完成这个功能可以考虑使用委派的方式。
namespace LosTechies.DaysOfRefactoring.ReplaceInherit...
分类:
其他好文 时间:
2015-07-21 10:38:21
阅读次数:
82
概念:本文中的改名(方法,类,参数)是指在写代码的时候对类、方法、参数、委托、事件等等元素取一个有意义的名称。
正文:如下代码所示,加入一个公司建立一个员工的类,类中有一个员工名字的字段和一个按照小时计算员工收入的方法,那么下面代码的取名就显得很难理解了,所以我们会重构名称。
namespace LosTechies.DaysOfRefactoring.Rename.Before...
分类:
其他好文 时间:
2015-07-21 10:36:23
阅读次数:
128
题意: 每台机器有x,y两种属性,有m个任务,如果机器的这两个属性大于任务,那么就是可以完成这个任务,并且每个任务每只能完成一个任务。
思路:先按照x排序,x相等,按照y排序,每一次记录下来可以完成这个任务的机器,寻找属性相差最小的那台。#include
#include
#include
using namespace std;
#d...
分类:
其他好文 时间:
2015-07-21 10:35:59
阅读次数:
126
http://poj.org/problem?id=3259DescriptionWhile exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very ...
分类:
其他好文 时间:
2015-07-21 10:35:43
阅读次数:
99
本文据下址理得http://www.zhangxinxu.com/wordpress/?p=552css3:(有兼容限制)-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg);i...
分类:
其他好文 时间:
2015-07-21 10:33:27
阅读次数:
132
插入记录INSERT [INTO] tbl_name [(col_name,...)] {VALUES丨VALUE} ({expr丨DEFAULT},...) (...),...INSERT [INTO] tbl_name SET col_name = {expr丨DEFAULT},...说明:此方...
分类:
其他好文 时间:
2015-07-21 10:34:07
阅读次数:
119
1 Maven 介绍http://blog.csdn.net/boyazuo/article/details/86855512 MyEclipse安装Maven过程http://www.cnblogs.com/fancyzero/archive/2012/06/09/maven3.html3 建立M...
分类:
其他好文 时间:
2015-07-21 10:32:52
阅读次数:
112
王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析百度云:http://pan.baidu.com/s/1pJoooun腾讯微云:http://url....
分类:
其他好文 时间:
2015-07-21 10:31:10
阅读次数:
113
Markdown语法使用,这是一门标记性语言,相对于HTML来说,简单方便。
分类:
其他好文 时间:
2015-07-21 10:33:10
阅读次数:
110
REPORTZTEST.FIELD-SYMBOLS:TYPESTANDARDTABLE,,.DATA:DY_TABLETYPEREFTODATA,DY_LINETYPEREFTODATA,IT_STRUCTURETYPELVC_T_FCAT,WA_STRUCTURETYPELVC_S_FCAT.ST...
分类:
其他好文 时间:
2015-07-21 10:33:23
阅读次数:
128
生成器生成器,也成为建造者模式,同样是创建对象时的设计模式。该模式下有一个Director(指挥者),客户端知道该类引用用来创建产品。还有一个Builder(建造者),建造者知道具体创建对象的细节。指挥者只是起到协调的作用,它有一个Builder引用用于指挥Builder如何创建对象,Builder...
分类:
其他好文 时间:
2015-07-21 10:31:43
阅读次数:
123
原文:http://blog.marchtea.com/archives/161#rd?sukey=fc78a68049a14bb2ba33c15948d34749e1eb616df07efe977573d59996ea9b63dc82be61d5771f948f5d8f01a917acd7第一次听...
分类:
其他好文 时间:
2015-07-21 10:30:45
阅读次数:
216
PQJ 1686用栈解决问题Time Limit:1000MSMemory Limit:10000KB64bit IO Format:%I64d & %I64uDescriptionA math instructor is too lazy to grade a questio...
分类:
其他好文 时间:
2015-07-21 10:29:57
阅读次数:
113
$ docker run -p 8080:8080 -e REG1=http://104.236.246.10:5000/v1/ atcol/docker-registry-ui$ docker run --name=registryui -p 8080:8080 -e REG1=http://0....
分类:
其他好文 时间:
2015-07-21 10:31:18
阅读次数:
119