java – 实例化新对象与实现reset()方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 实例化新对象与实现reset()方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1414字,纯文字阅读大概需要3分钟。
内容图文
![java – 实例化新对象与实现reset()方法](/upload/InfoBanner/zyjiaocheng/735/c70deca5666e4d63b1f7f3767e43ba05.jpg)
我目前正在用Java创建一个5张牌抽奖扑克游戏的控制台实现.
我有一个名为HandOfCards的课程,它将处理个人手牌的程序 – 交易玩家的牌,下注并确定获胜者.我还有一个名为GameOfPoker的课程,它可以帮助多人扑克,代表一场扑克游戏.
我将为GameOfPoker构造HandOfPoker实例:
HandOfPoker handOfPoker = new HandOfPoker(List<PokerPlayer> players, DeckOfCards deck);
我的问题是,在GameOfPoker中,我应该实例化一个新对象,还是应该在HandOfPoker中定义一个reset方法:
public class HandOfPoker{
public void reset(List<PokerPlayer> players) {
this.players = players;
}
}
public class GameOfPoker{
public play() {
// carry out game
// then after a hand, I could either instantiate:
//handOfPoker = new HandOfPoker(players, deck);
// or I could reset:
handOfPoker.reset();
// now I'm ready to play another hand.
}
}
直观地说,感觉就像reset()方法看起来更好 – 因为实例化一个新对象似乎更昂贵,因为必须创建一个新实例,而旧的实例必须被删除.
这里是否有最佳实践方法,或两种方法之间的差异是否足够小以至于无关紧要?
解决方法:
通常,创建一个新对象并让垃圾收集器销毁它并不昂贵,除非在非常紧密的循环中多次完成.如果你在游戏中每手一次,那么你将无法衡量差异.
因此,在决定是否应该实现reset()方法时,最好集中精力以最合理的方式向代码的人类读者表达您的设计:
>如果HandOfPoker永远不会在多个对象之间共享,那么不使用reset()会让代码的读者看起来更整洁,因为他们不需要查看reset()内部以查看正在发生的事情.
>如果HandOfPoker在多个对象之间共享,例如对于显示,持久性等,最好有一个reset()而不是在多个地方设置新对象.
内容总结
以上是互联网集市为您收集整理的java – 实例化新对象与实现reset()方法全部内容,希望文章能够帮你解决java – 实例化新对象与实现reset()方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。