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){
1700482726
1700482727
//首先修改权限,允许创建
1700482728
1700482729
isPermittedCreate=true;
1700482730
1700482731
Product p=new Product(this,name);
1700482732
1700482733
return p;
1700482734
1700482735
}
1700482736
1700482737
//废弃一个产品
1700482738
1700482739
public void abandonProduct(Product p){
1700482740
1700482741
//销毁一个产品,例如删除数据库记录
1700482742
1700482743
p=null;
1700482744
1700482745
}
1700482746
1700482747
//修改一个产品
1700482748
1700482749
public void editProduct(Product p,String name){
[
上一页 ]
[ :1.7004827e+09 ]
[
下一页 ]