1700446713
1700446714
}
1700446715
1700446716
//构造函数定义鸟的颜色
1700446717
1700446718
public Sparrow(Color_color){
1700446719
1700446720
color=_color;
1700446721
1700446722
}
1700446723
1700446724
@Override
1700446725
1700446726
public Color getColor(){
1700446727
1700446728
return color;
1700446729
1700446730
}
1700446731
1700446732
}
1700446733
1700446734
//鸟巢,工厂方法模式
1700446735
1700446736
enum BirdNest{
1700446737
1700446738
Sparrow;
1700446739
1700446740
//鸟类繁殖
1700446741
1700446742
public Bird reproduce(){
1700446743
1700446744
Desc bd=Sparrow.class.getAnnotation(Desc.class);
1700446745
1700446746
return bd==null?new Sparrow():new Sparrow(bd.c());
1700446747
1700446748
}
1700446749
1700446750
}
1700446751
1700446752
程序比较简单,声明了一个Bird抽象类,并且标注了Desc注解,描述鸟类的颜色是白色的,然后编写了一个麻雀Sparrow类,它有两个构造函数,一个是默认的构造函数,也就是我们经常看到的麻雀是浅灰色的,另外一个构造函数是自定义麻雀的颜色,之后又定义了一个鸟巢(工厂方法模式),它是专门负责鸟类繁殖的,它的生产方法reproduce会根据实现类注解信息生成不同颜色的麻雀。我们编写一个客户端调用,代码如下:
1700446753
1700446754
public static void main(String[]args){
1700446755
1700446756
Bird bird=BirdNest.Sparrow.reproduce();
1700446757
1700446758
Color color=bird.getColor();
1700446759
1700446760
System.out.println(“Bird’s color is:”+color);
1700446761
1700446762
}
[
上一页 ]
[ :1.700446713e+09 ]
[
下一页 ]