打字猴:1.700448207e+09
1700448207
1700448208 }
1700448209
1700448210 接下来我们要给Jerry增加一些能力,比如飞行、钻地等能力,当然使用类继承也很容易实现,但我们这里只是临时地为Rat类增加这些能力,使用装饰模式更符合此处的场景。首先定义装饰类,代码如下:
1700448211
1700448212 //定义某种能力
1700448213
1700448214 interface Feature{
1700448215
1700448216 //加载特性
1700448217
1700448218 public void load();
1700448219
1700448220 }
1700448221
1700448222 //飞行能力
1700448223
1700448224 class FlyFeature implements Feature{
1700448225
1700448226 public void load(){
1700448227
1700448228 System.out.println(“增加一只翅膀……”);
1700448229
1700448230 }
1700448231
1700448232 }
1700448233
1700448234 //钻地能力
1700448235
1700448236 class DigFeature implements Feature{
1700448237
1700448238 public void load(){
1700448239
1700448240 System.out.println(“增加钻地能力……”);
1700448241
1700448242 }
1700448243
1700448244 }
1700448245
1700448246 此处定义了两种能力:一种是飞行,另一种是钻地,我们如果把这两种属性赋予到Jerry身上,那就需要一个包装动作类了,代码如下:
1700448247
1700448248 class DecorateAnimal implements Animal{
1700448249
1700448250 //被包装的动物
1700448251
1700448252 private Animal animal;
1700448253
1700448254 //使用哪一个包装器
1700448255
1700448256 private Class<?extends Feature>clz;
[ 上一页 ]  [ :1.700448207e+09 ]  [ 下一页 ]