摘要:
每天坐城铁上下班,无聊的时候就会发呆,有时也会观察周围的人。观察他们的相貌、衣着、动作、谈吐,想象自己就是福尔摩斯,去推测他们的是做什么工作的,现在的心情如何,是否高兴,是否忧伤。有一天,我问了自己一个问题,人是如何定义美和丑的?人的面部是由许多部分组成的,如果你把你认为最美的各个部分拼起来的话,得到的却可能是一张并不美的脸。而那些公认的俊男靓女们,也都能找出某个部分的缺点。这说明面部的美丑并不仅... 阅读全文
摘要:
最近抵制IE6的运动似乎多了起来,老赵也在自己的博客呼吁抵制IE6,然而和国外各大流行网站的积极响应不同的是,国内一片风平浪静,而且还有很多人反对废弃IE6(见老赵博客响应回帖)。作为一个2001年的浏览器,在已经有了两位更好的大哥(IE7/8)之后,为什么还迟迟不肯推出历史舞台,为什么还有众多开发人员与公司认为不能放弃对IE6的支持呢?为什么要抵制IE6IE6在当年是非常成功的,市场占有率一度达... 阅读全文
摘要:
最近设计模式的文章又多了起来,戏说之风也渐渐显现,当然这也不是第一次有某项技术被戏说,或者被放到了故事之中,甚至还有一本专门戏说设计模式的书出版。然而设计模式真的可以被戏说么?首先来探索一下为什么会有戏说这种方式。设计模式刚出来的时候,被无数大牛所吹捧,凡是玩OO的一定要学,于是一时间设计模式风靡大江南北,凡是跟设计模式沾边的书一律大卖。甭管是懂不懂OO的,有经验没经验的,真会的假会的,张口闭口设... 阅读全文
摘要:
还是to-do list开头 随机生成答案 检查输入是否合法 判断猜测结果 记录历史猜测数据并显示 判断猜测次数,如果满6次但是未猜对则判负 如果4个数字全中,则判胜 实现IRandomIntGenerator如果4个数字全中,则判胜首先还是以测试开始,与GameOver类似[代码]然后在IGameObserver接口中添加GameClear方法,在Game类中添加GameClear事件[代... 阅读全文
摘要:
先看to-do list 随机生成答案 检查输入是否合法 判断猜测结果 记录历史猜测数据并显示 判断猜测次数,如果满6次但是未猜对则判负 如果4个数字全中,则判胜 实现IRandomIntGenerator判断猜测次数,如果满6次但是未猜对则判负我们先理一下思路,如何记录和判断猜测次数和判负。第一种方式是在调用Game类的地方记录和判断,这个类扮演协调者的角色,很可能就是main或类似的东... 阅读全文
摘要:
上一篇我们已经完成了一个功能,接下来实现其他功能,首先看一下to-do list:随机生成答案 检查输入是否合法判断猜测结果 记录历史猜测数据并显示 判断猜测次数,如果满6次但是未猜对则判负如果4个数字全中,则判胜我们挑一个随即生成答案吧,这个功能看起来简单,但是真要TDD也不容易。随机生成答案写测试先,这个测试应该测什么呢?测每次生成的答案都是随机的么?不是,.NET已经有内置的Random类可... 阅读全文
摘要:
分析 在开始写代码前,首先分析一下这个问题,做一个粗略的规划。我们可以写一个to-do list: 随机生成答案检查输入是否合法 判断猜测结果记录历史猜测数据并显示 判断猜测次数,如果满6次但是未猜对则判负 如果4个数字全中,则判胜 架构 这个程序比较简单,也不需要在架构上做太多考虑,只需要注意将输入输出与系统的核心逻辑分开就行了。开发环境 .NET 3.5 + VS2008 + NUnit 2.... 阅读全文
摘要:
前言在园子里看到很多关于TDD、Mock、IoC的文,但是很少有将之组合到一起成为完整的例子的。在这一系列的文章中,我会将TDD、Refactor、Mock、IoC放到一个程序中,一步一步的开发,形成一个完整的示例。我假设你已经对TDD、Refactor、Mock和IoC有一些的认识,因此并不会解释这些概念,也不会包含如何使用这些技术的基本内容。本篇是系列的开篇,主要介绍一下此系列的内容和要解决的... 阅读全文
摘要:
目录1. IoC使用简介与原理 1.1 依赖关系 1.2 面向接口编程 1.3 IoC使用与实现原理 2. 模式与经验 2.1 code configuration vs. xml configuration 2.2 IoC容器依赖 1. IoC使用简介与原理 1.1 依赖关系在面向对象编程中,类与类之间总是要有一些依赖关系,有些依赖强一些,有些依赖弱一些,常见的依赖关系有:o 继承依赖 - 子类... 阅读全文
摘要:
萝卜问题讨论的很多了,我就不再重复题目和要求了。我的OO解法对性能没有什么考虑,也没有在算法上有什么改进,主要目的有两个:1.用OO的方式表达,2.尽量使代码清晰易懂。当然了,世上不存在绝对好的代码,任何代码都有进一步改进的余地,所以如果觉得哪里可以进一步的改进,欢迎赐教。Cell类,维护一个Cell本身的信息,包括他所在的行列坐标,格子里的萝卜数,以及计算它的特殊值。[代码]Field类,维护F... 阅读全文