论坛首页 海阔天空论坛

理论上来说,对象是否应该具备自杀的能力?

浏览 6291 次
精华帖 (0) :: 良好帖 (9) :: 灌水帖 (0) :: 隐藏帖 (16)
作者 正文
   发表时间:2008-09-05  
如题,杀死对象这个职责是否应该属于对象自身?
   发表时间:2008-09-05  
在java中,我认为应该是包含这个对象的集合的行为。没有自杀一说的,只是从一个容器中移走而已。
在c++中可以理解为释放内存吧。也不是它自己的行为,而是拥有这个指针的函数或者容器的行为。
0 请登录后投票
   发表时间:2008-09-05  
倾向于他杀
0 请登录后投票
   发表时间:2008-09-05  
user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。

SO。。。
楼主自己找个豆腐解决吧。。。
0 请登录后投票
   发表时间:2008-09-05  
taowen 写道
在java中,我认为应该是包含这个对象的集合的行为。没有自杀一说的,只是从一个容器中移走而已。
在c++中可以理解为释放内存吧。也不是它自己的行为,而是拥有这个指针的函数或者容器的行为。

也就是说应该是“它杀”是吧,我指的“杀”就是释放它的内存。最近忽然想起ActiveRecord中的模型对象好像是“自杀”的,即调用对象的remove方法,删除它所关联的数据库记录,不知Rails中是否如此实现。个人觉得这种实现不好,remove后对象本身的内存还在,存在悬空引用,而且对象方法内似乎也不能delete掉this?不知C++中是否如此?
0 请登录后投票
   发表时间:2008-09-05  
xqstation 写道
user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。

SO。。。
楼主自己找个豆腐解决吧。。。

你还真说对了,我现在就是被这两种选择弄得很头疼
0 请登录后投票
   发表时间:2008-09-05  
diogin 写道
xqstation 写道
user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。

SO。。。
楼主自己找个豆腐解决吧。。。

你还真说对了,我现在就是被这两种选择弄得很头疼

我怎么就看不出这两个有啥区别呢?
0 请登录后投票
   发表时间:2008-09-05  
gigix 写道
diogin 写道
xqstation 写道
user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。

SO。。。
楼主自己找个豆腐解决吧。。。

你还真说对了,我现在就是被这两种选择弄得很头疼

我怎么就看不出这两个有啥区别呢?

对于不能在方法内部删除对象本身的内存的语言,还是有区别的,因为 User.delete(user1) 里面可以delete/free掉user1,而 user1.delete() 则做不到这一点。

我觉得如果user1对应的外部数据记录已经删除,则user1也不应该在内存里存在,不知大家有什么看法?
0 请登录后投票
   发表时间:2008-09-05  
diogin 写道
gigix 写道
diogin 写道
xqstation 写道
user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。

SO。。。
楼主自己找个豆腐解决吧。。。

你还真说对了,我现在就是被这两种选择弄得很头疼

我怎么就看不出这两个有啥区别呢?

对于不能在方法内部删除对象本身的内存的语言,还是有区别的,因为 User.delete(user1) 里面可以delete/free掉user1,而 user1.delete() 则做不到这一点。

我觉得如果user1对应的外部数据记录已经删除,则user1也不应该在内存里存在,不知大家有什么看法?

哥们,你自杀了,不还要大地回收你。
0 请登录后投票
   发表时间:2008-09-05  
花花公子 写道

哥们,你自杀了,不还要大地回收你。

自解。
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics