针对C选项:client必须要知道自己希望 使用的是哪个pay策略,然后构造其对 象,传入pay(PaymentStrategy p)方法, 才能调用p的pay()方法。
7.
上图Strategy模式, 说法正确的是
ShoppingCart将pay( )的职责delegate给了PaymentStrategy
PaymentStrategy是接口,client的pay实际执行的是其某个实现类的pay()
若要扩展新的pay( )策略,只需为PaymentStrategy增加新的实现类
不正确的
Client端不需要了解PaymentStrategy的任何实现类即可使用其pay()
client必须要知道自己希望 使用的是哪个pay策略,然后构造其对 象,传入pay(PaymentStrategy p)方法, 才能调用p的pay()方法。
8.
上图显示的Template模式,不正确的是
上图中的0rderProcessTemplate是"模板”,可以是接口,也可以是抽象类
Client可以更改对一系列doXXX( )方法的调用次序
正确的
ProcessOrder()是模板方法,包含了对一系列操作的调用
如果OrderProcessTemplate中没有某个doXXX( )方法的实现,则在NetOrder和StoreOrder中必须要实现它。
9.
关于Iterator模式,不正确的是
为了让你的类A具备iteration的能力,需要A实现Iterator接口
为了让你的类A具备iteration的能力,还需要构造一个实现Iterable接口的类作为符合A特定需求的迭代器
正确的
Java里Iterable接口只有一个方法iterator(),它返回一个迭代器对象
Java里Iterator接口有三个方法hasNext(),next(),remove( )