打字猴:1.700482676e+09
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 ]  [ 下一页 ]