当时还不太明白,这几天看了《重构》第一章的影片租赁案例,感触颇深。及《重构》第一章。首先我们模仿影片租赁过程,顾客租凭影片,影片分为儿童片、普通片、新片。根据影片类型及租凭天数价格各不相同,用户累计积分不同。OK ,现在我们使用 if else 表示。而若要改变租赁价格、积分的优惠规则时,仍需要修改 getIntegral 和 getCharge 方法。现在看来,只有三种影片类型,维护还较方便。而当影片类型较多时,例如 10 种, 100 种影片类型,这样就是不可以想像的维护。最新发布片NewReleasePrice类,实现abstract class Price ,实现最新发布片租赁总价getCharge及最新发布片租赁积分getIntegral。若没有movieClass这个类,则抛出MovieException异常。写一 junit 测试类运行 class Customer 的 consume() 方法。

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else

Java如何利用状态模式(state pattern)替代if else