重构是在不改变软件可观察行为的前提下改善其内部结构
书中的案例如下:
以一个影片出租店用的程序,计算每位顾客的消费金额并打印详单。输入条件:顾客租了那些影片、租期多长;输出:费用根据租赁时间和影片类型计算,积分根据是否是新片而不同。
影片分为三类:普通片、儿童片、新片:
优化之后整体布局如下:
关键部分是Taximeter,可以通过添加不同的计价器,计算价格,后续若需要添加一种新的计价方式,只需要添加计价器即可。具体代码可以参考:https://github.com/Johar77/reconsitution.git