参考文献:http://en.wikipedia.org/wiki/Builder_pattern生成器(英:Builder)是一种设计模式,又名:建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。参与者Builder创建对象的抽象接口。ConcreteBuilder提供Builder的实现。Director负责管理对象创建的正确顺序。IProduct由Directo
系统 2019-08-29 22:50:01 2283
欢迎点击此处订阅本Blog
系统 2019-08-29 22:35:12 2283
赖勇浩(http://laiyonghao.com)经常听到和看到一些前辈提起搞编程这一行最大的痛苦在于知识的更新太频繁,如同逆水行舟,不进则退,稍一松懈,就跟不上潮流。的确如此,既然身在IT界,不学习是不行的,不管你写了多少年程序,职位到了技术总监还是CTO,不去了解潮流,肯定就会被超越。10年工作经验在这个领域算个屁,写代码的不是卖油翁,可以10年用一招,一招用10年。从业以后我自己的技术更新了好几代,还好没算落后太多,还是有一些方法的,今天公开一下,
系统 2019-08-29 22:28:41 2283
《设计模式》一书对于访问者模式给出的定义为:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必须条件,而且这个结构对象必须存在遍历自身各个对象的方法。设想一个场景,就是学校,学校里有老师和学生,老师和学生可以称为两种元素,我们可以对这些元素进行很多操作(注意,这些操作都是外部性质的,不属于元素本身,这个至关重要),比如评价,问卷调查,采访和体检等,如果我们把这些
系统 2019-08-29 22:14:05 2283
汉诺塔的递归算法假设有3个分别命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1、2…n的圆盘。现要求将X轴上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵守下列规则:1、每次只能移动一个圆盘;2、圆盘可以插在X、Y和Z中任一塔座上;3、任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。递归算法的思路:当n=1时,问题比较简单,只要将编号为1的圆盘从塔座X直接移至塔座Z上即可。当n>1时,需利用塔座Y作辅助塔座,若能设
系统 2019-08-29 22:02:00 2283
3.可变更性前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修改就能够适应。但这之所以称之为理想状态,因为客户需求变化是有大有
系统 2019-08-29 21:58:57 2283
1#include2#include3#include45#pragmacomment(lib,"opencv_calib3d231d.lib")6#pragmacomment(lib,"opencv_contrib231d.lib")7#pragmacomment(lib,"opencv_core231d.lib")8#pragmacomment(lib,"opencv_features2d231d.l
系统 2019-08-12 09:27:41 2283
ProblemG.BirthdayCakeBackgroundLucyandLilyaretwins.Todayistheirbirthday.Motherbuysabirthdaycakeforthem.NowweputthecakeontoaDescartescoordinate.Itscenterisat(0,0),andthecake'slengthofradiusis100.Thereare2N(Nisainteger,1<=N<=50)cher
系统 2019-08-12 09:27:32 2283
题目大意要求你在N*M大小的主板上嵌入2*3大小的芯片,不能够在损坏的格子放置,问最多能够嵌入多少块芯片?题解妈蛋,这道题折腾了好久,黑书上的讲解看了好几遍才稍微有点眉目(智商捉急),接着看了网上大牛的解题报告和实现代码才弄明白怎么用三进制来进行状态压缩,关键就是理解能够横着放置和竖着放置的条件。由于竖着放置会受到前面两行的影响,这样我们就可以用三进制来表示前面两行的状态了,然后根据前面两行的状态我们也可以得到当前行与前一行的初始状态,之后再根据两个的状态
系统 2019-08-12 09:27:32 2283
之前在VS上装了Builddefinition的扩展,后来发现很不好用,想卸载掉,就增工具下面找add-inmanager,结果找不到,externaltools下面也找不到,google也无果再到后来,每次启动VS,装报需要注册,很唠叨,但也没办法今天打开VS,有提示有升级,灵感来了,在ExtensionsandUpdates是否可以送走这个瘟神呢,果然,在installed里面找到了它,点击uninstall,轻松送走...xeamBuildDefin
系统 2019-08-12 09:27:23 2283