1700477324
1700477325
类图比较简单,非常标准的装饰模式。我们按照故事的情节发展一步一步地实现程序。初期的时候,丑小鸭表现得很另类,叫声不同,外形不同,致使周围的亲戚、朋友都对她鄙视,那我们来建立这个过程,由于丑小鸭的本质就是一个天鹅,那我们就先生成一个天鹅的接口,如代码清单31-7所示。
1700477326
1700477327
代码清单31-7 天鹅接口
1700477328
1700477329
public interface Swan{
1700477330
1700477331
//天鹅会飞
1700477332
1700477333
public void fly();
1700477334
1700477335
//天鹅会叫
1700477336
1700477337
public void cry();
1700477338
1700477339
//天鹅都有漂亮的外表
1700477340
1700477341
public void desAppaearance();
1700477342
1700477343
}
1700477344
1700477345
我们定义了天鹅的行为,都会飞行、会叫,并且可以描述她们漂亮的外表。丑小鸭是一只白天鹅,是”is-a”的关系,也就是需要实现这个接口了,其实现如代码清单31-8所示。
1700477346
1700477347
代码清单31-8 丑小鸭
1700477348
1700477349
public class UglyDuckling implements Swan{
1700477350
1700477351
//丑小鸭的叫声
1700477352
1700477353
public void cry(){
1700477354
1700477355
System.out.println(“叫声是克噜——克噜——克噜”);
1700477356
1700477357
}
1700477358
1700477359
//丑小鸭的外形
1700477360
1700477361
public void desAppaearance(){
1700477362
1700477363
System.out.println(“外形是脏兮兮的白色,毛茸茸的大脑袋”);
1700477364
1700477365
}
1700477366
1700477367
//丑小鸭还比较小,不能飞
1700477368
1700477369
public void fly(){
1700477370
1700477371
System.out.println(“不能飞行”);
1700477372
1700477373
}
[
上一页 ]
[ :1.700477324e+09 ]
[
下一页 ]