内容简介:翻译自:https://stackoverflow.com/questions/524647/what-things-are-best-not-done-in-a-constructor
5中的__construct())”,但在阅读相关问题时,我看到几条评论似乎表明设置成员变量或在构造函数中执行任何复杂的操作都是no-nos.
这里讨论的类的构造函数接受一个参数,对它执行一些操作(确保它通过嗅探测试,并在必要时进行转换),然后将其存储在成员变量中.
我认为这样做的好处是:
1)客户端代码永远是
肯定有这个价值
每当一个对象成员变量
这个类的实例化,和
2)它在客户端代码中保存了一个步骤
(其中一个可以想象得到
错过了,例如,
$Thing = new Thing; $Thing->initialize($var);
什么时候我们可以做到这一点
$Thing = new Thing($var);
并完成它.
这是不是吗?如果是这样的话?
这在C讨论中出现了很多,我得到的一般结论是这样的:
如果对象没有获取任何外部资源,则必须在构造函数中初始化成员.这涉及在构造函数中完成所有工作.
>(x,y)坐标(或者实际上任何其他只是一个美化元组的结构)
>美国州名缩写查找表
如果对象获取了它可以控制的资源,则可以在构造函数中分配它们:
>打开文件描述符
>分配内存
>处理/指针到外部库
如果对象获取了无法完全控制的资源,则必须在构造函数之外分配它们:
> TCP连接
>数据库连接
>弱参考
总有例外,但这涵盖了大多数情况.
翻译自:https://stackoverflow.com/questions/524647/what-things-are-best-not-done-in-a-constructor
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
统计自然语言处理
宗成庆 / 清华大学出版社 / 2008-5 / 66.00元
内容简介 本书全面介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,内容包括形式语言与自动机及其在自然语言处理中的应用、语言模型、隐马尔可夫模型、语料库技术、汉语自动分词与词性标注、句法分析、词义消歧、统计机器翻译、语音翻译、文本分类、信息检索与问答系统、自动文摘和信息抽取、口语信息处理与人机对话系统等,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详......一起来看看 《统计自然语言处理》 这本书的介绍吧!
HEX CMYK 转换工具
HEX CMYK 互转工具
HEX HSV 转换工具
HEX HSV 互换工具