发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 云架构 框架 开发教程 SOA 大数据 扩展性 并发编程 EDA 分布式 函数编程
1 2 下一页 Go 2

一篇不错的文章,介绍clone()方法的

    
cc
2002-08-19 11:05
赞助商链接

这几天一直迷惑原型模式的设计应用,现在理解了clone()方法,感觉还不错。这篇文章挺受启发,看看吧。

http://www-900.ibm.com/developerWorks/cn/java/l-jpointer/index.shtml

2002-08-19 11:20

对 原型模式 基本就是clone方法。
IBM这个文章有点罗嗦。

java中对象赋值和基本类型赋值是不一样的,基本类型赋值就象我们通常概念一样,对象赋值实际是传递了一个引用,指向,实际是指向同一个内存,赋值者和被赋值者实际拥有同一个内存块,所以互相会影响,要实现真正的赋值,就必须clone(克隆)


cc
2002-08-19 11:37

在何处应该使用原型法呢?《设计模式》中说得很不清楚,我在实际应用中觉得工厂方法能使用的地方,改一改,原型法也可以使用。使用后,又想不出它好在那里?

2002-08-22 21:33

原型法只有在需要复制对象时才有必要使用。
谈到复制对象,一般是应用在一些极其高妙的技巧里。
我好像在一个shoppingcart程序里看到过

2002-08-24 23:37

import javax.servlet.http.HttpServletRequest;
import java.util.Hashtable;
import java.util.Enumeration;
public class BasketBean {
/* 当前购物蓝中的商品,这里是用Hashtable来储存 */
private Hashtable products_ = new Hashtable();
/* 这是个计算购物蓝中总价的方法 */
public double getTotal() {…}
/*这是一个获得某个商品的价格的方法 */
public double getPounds(Product p_in_inv) {…}

/*调整刷新当前购物蓝中的内容,这种情况发生在客户在检查购物车中的内容时,可能有所增改。 */
public void savePurchases(HttpServletRequest request) {
//首先得到库存商品清单
Product[] products = InventoryBean.getCatalogue();
//从前台获得用户购买本商品的数量
String[] lbValues = request.getParameterValues("pounds");
if (lbValues != null) {
//清除本购物蓝中原来的内容
products_.clear();
for (int i = 0; i < lbValues.length; i++) {
double lbs = Double.parseDouble(lbValues);
if(lbs > 0) {
//从库存商品清单中 复制一份商品出来
Product p =(Product)products.clone();
//改变这个商品的数量为用户输入的数量
p.setPounds(lbs);
//将这个商品放入本购物蓝中
products_.put(Integer.toString(p.getSKU()), p);
}
}
}
}
}

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com