1700482676
1700482677
}
1700482678
1700482679
public void setName(String name){
1700482680
1700482681
if(canChanged){
1700482682
1700482683
this.name=name;
1700482684
1700482685
}
1700482686
1700482687
}
1700482688
1700482689
//覆写clone方法
1700482690
1700482691
@Override
1700482692
1700482693
public Product clone(){
1700482694
1700482695
Product p=null;
1700482696
1700482697
try{
1700482698
1700482699
p=(Product)super.clone();
1700482700
1700482701
}catch(CloneNotSupportedException e){
1700482702
1700482703
e.printStackTrace();
1700482704
1700482705
}
1700482706
1700482707
return p;
1700482708
1700482709
}
1700482710
1700482711
}
1700482712
1700482713
在产品类中,我们只定义产品的一个属性:产品名称(name),并实现了getter/setter方法,然后我们实现了它的clone方法,确保对象是可以被拷贝的。还有一个特殊的地方是我们的构造函数,它怎么会要求传递进来一个工厂对象ProductManager呢?保留你的好奇心,马上为你揭晓答案。我们继续看代码,工厂类如代码清单36-2所示。
1700482714
1700482715
代码清单36-2 工厂类
1700482716
1700482717
public class ProductManager{
1700482718
1700482719
//是否可以创建一个产品
1700482720
1700482721
private boolean isPermittedCreate=false;
1700482722
1700482723
//建立一个产品
1700482724
1700482725
public Product createProduct(String name){
[
上一页 ]
[ :1.700482676e+09 ]
[
下一页 ]