代码重构
文章平均质量分 88
Harry0073
余生很长,别慌张别失望。
展开
-
1.1重构-第一章
重构是在不改变软件可观察行为的前提下改善其内部结构。 设计模式为重构提供了目标 1.1 起点 这是一个影片出租店用的程序,计算每一个顾客的消费金额并打印详单。操作者告诉程序:租客租了哪些影片、租期多长,程序便根据租赁时间和影片类型算出费用。影片分为三类:普通片、儿童片、新片。除了计算费用,还要为常客计算积分,积分会根据租片种类是否为新片而有不同。 Movie(影片)- movie只原创 2018-02-06 13:33:29 · 355 阅读 · 0 评论 -
1.2重构-第一章
1.2重构的第一步 每当要进行重构的时候,第一个步骤永远相同:即为将修改的代码建立一组可靠的测试环境,这些测试是必要的,因为尽管遵循重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错,所以我需要可靠的测试。 接1.1,由于statement()的运作结果是个字符串,所以我首先假设一些客户,让他们每个人各租几部不同的影片,然后产生报表字原创 2018-02-06 14:37:14 · 254 阅读 · 0 评论 -
1.3重构-第一章
搬移“金额计算”代码 接1.2,观察amountFor()(计算金额)使用了来自Rental(租赁实体)类的信息,却没有使用来自Customer类的信息。 这就使我们怀疑它是否被放错了位置。绝大多数情况下,函数应该放在它所使用的数据的所属对象内,所以amountFor()应该从Customer(顾客实体)类中移到Rental(租赁实体)类去。原创 2018-02-06 15:31:22 · 216 阅读 · 0 评论 -
1.4重构-第一章
接1.3,本章对“常客积分计算”做类似处理。积分的计算视影片种类而有不同,不过不像收费规则有那么多变话。看来有理由把积分计算责任放在Rental类身上,首先需要针对“常客积分计算”这部分代码运用Extract Method(提炼函数)。 再来看局部变量。这里再一次用到了each,而它可以被当作参数传入新函数中。另一个临时变量是frequentRenterPoints。本例中,它原创 2018-02-06 16:52:11 · 267 阅读 · 0 评论