From a22f778f3228249da1f915c7b1b90acaebade7f7 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sun, 4 Mar 2018 14:43:31 +0800 Subject: [PATCH] auto commit --- notes/重构.md | 57 ++++++++++++++---- pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png | Bin 0 -> 7168 bytes pics/2a842a14-e4ab-4f37-83fa-f82c206fe426.png | Bin 0 -> 12288 bytes pics/4440ad24-625b-489a-96c1-e5ab1b06a30f.png | Bin 0 -> 18432 bytes pics/76b48b4c-8999-4967-893b-832602e73285.png | Bin 0 -> 8192 bytes pics/8c139711-3500-4f71-8456-c1adaf429ad0.png | Bin 0 -> 11264 bytes 6 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png create mode 100644 pics/2a842a14-e4ab-4f37-83fa-f82c206fe426.png create mode 100644 pics/4440ad24-625b-489a-96c1-e5ab1b06a30f.png create mode 100644 pics/76b48b4c-8999-4967-893b-832602e73285.png create mode 100644 pics/8c139711-3500-4f71-8456-c1adaf429ad0.png diff --git a/notes/重构.md b/notes/重构.md index 4803d5b6..4e3fd6a9 100644 --- a/notes/重构.md +++ b/notes/重构.md @@ -109,37 +109,68 @@ 在重构前,需要先构建好可靠的测试环境,确保安全地重构。 -重构是以微小的步伐修改程序,如果犯下错误,很容易便可以发现它。 +重构需要以微小的步伐修改程序,如果重构过程发生错误,很容易就能发现错误。 **案例分析** -影片出租店应用程序,包括三个类:Movie、Rental 和 Customer,Rental 包含租赁的 Movie 以及天数。 +影片出租店应用程序,需要计算每位顾客的消费金额。 -

+包括三个类:Movie、Rental 和 Customer,Rental 包含租赁的 Movie 以及天数。 -最开始的实现是把所有的计费代码都放在 Customer 类中,在变化发生时,需要对这部分代码进行更改。本案例中可能发生的变化有:一种类别的计费方式发生改变;添加新的电影类别。考虑到计费代码可能存在于多处,一旦发生改变时,就需要对所有计费代码进行修改。 +

-

+最开始的实现是把所有的计费代码都放在 Customer 类中。 -以下是继承 Movie 的多态方案。但是由于一部 Movie 的类别会动态改变,因此这种方案不可行。 +可以发现,该代码没有使用 Customer 类中的任何信息,更多的是使用 Rental 类的信息,因此第一个可以重构的点就是把具体计费的代码移到 Rental 类中,然后 Customer 类的 getTotalCharge() 方法只需要调用 Rental 类中的计费方法即可。 -

-引入 Price 来反应类别信息,通过组合的方式在 Movie 中加入 Price 对象,这样每种类别的计费方式都封装在不同的 Price 子类中,并且 Movie 对象也可以动态改变类别。这种方式可以很好地适应上述提到的变化。 +```java +class Customer... +double getTotalCharge() { + while (rentals.hasMoreElements()) { + double thisAmount = 0; + Rental each = (Rental) rentals.nextElement(); + switch (each.getMovie().getPriceCode()) { + case Movie.REGULAR: + thisAmount += 2; + if (each.getDaysRented() > 2) + thisAmount += (each.getDaysRented() - 2) * 1.5; + break; + case Movie.NEW_RELEASE: + thisAmount += each.getDaysRented() * 3; + break; + case Movie.CHILDRENS: + thisAmount += 1.5; + if (each.getDaysRented() > 3) + thisAmount += (each.getDaysRented() - 3) * 1.5; + break; + } +} +``` -

+使用 switch 的准则是:只能在对象自己的数据上使用,而不能在另一个对象的数据基础上使用。解释如下:switch 使用的数据通常是一组相关的数据,例如上面的代码使用了 Movie 的多种类别数据。当这组类别的数据发生改变时,例如上面的代码中增加 Movie 的类别或者修改一种 Movie 类别的计费方法,就需要修改 switch 代码。如果允许违反了准则,就会有多个地方的 switch 使用了这部分的数据,那么需要打开所有的 switch 代码进行修改。 -重构后的时序图和类图: +以下是继承 Movie 的多态解决方案,这种方案可以解决上述的 switch 问题,因为每种电影类别的计费方式都被放到了对应 Movie 子类中,当变化发生时,只需要去修改对应子类中的代码即可。 -

+

-

+但是由于 Movie 可以在其生命周期内修改自己的类别,一个对象却不能在生命周期内修改自己所属的内,因此这种方案不可行。可以通过使用策略模式来解决这种问题(原书写的是使用状态模式,但是这里应该为策略模式,具体可以参考设计模式内容)。 + +下图中,Price 有多种实现,Movie 组合了一个 Price 对象,并且在运行时可以改变组合的 Price 对象,从而使得它的计费方式发生改变。 + +

+ +重构后整体的类图和时序图如下: + +

+ +

# 第二章 重构原则 重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 -重构的好处:改进软件设计;使软件更容易理解;帮助找到 bug;提高编程速度。 +重构的好处:改进软件设计;使软件更容易理解;帮助找到 Bug;提高编程速度。 三次法则:第一次做某件事时只管去做;第二次做类似事情时可以去做;第三次再做类似的事,就应该重构。 diff --git a/pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png b/pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png new file mode 100644 index 0000000000000000000000000000000000000000..7550da6b81d60627a0f28ab35dfd5c5ac4b19ad9 GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/pics/76b48b4c-8999-4967-893b-832602e73285.png b/pics/76b48b4c-8999-4967-893b-832602e73285.png new file mode 100644 index 0000000000000000000000000000000000000000..ce8516871be23344207178f08af5c011f29493ce GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/pics/8c139711-3500-4f71-8456-c1adaf429ad0.png b/pics/8c139711-3500-4f71-8456-c1adaf429ad0.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd01d9cbac3019cb518bb6450655bb31631cc36 GIT binary patch literal 11264 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 EU$aSI6951J literal 0 HcmV?d00001