我主要使用ColdFusion,这是一种非编译语言,但这是所有语言的通用问题。
我正在使用getters/setters以及CRUD方法创建对象。下面是一个示例:
<cffunction name="getPeriodStartDate" output="false" returntype="Numeric">
<cfreturn VARIABLES.PeriodStartDate />
</cffunction>
<cffunction name="setPeriodStartDate" output="false" returntype="Void">
<cfargument name="PeriodStartDate" type="Numeric" required="true" />
<cfset VARIABLES.PeriodStartDate = ARGUMENTS.PeriodStartDate />
</cffunction>
<cffunction name="getDollarAmount" output="false" returntype="Numeric">
<cfreturn VARIABLES.DollarAmount />
</cffunction>
<cffunction name="setDollarAmount" output="false" returntype="Void">
<cfargument name="DollarAmount" type="Numeric" required="true" />
<cfset VARIABLES.DollarAmount = ARGUMENTS.DollarAmount />
</cffunction>
<cffunction name="read" output="false" returntype="Query">
<!---
READ QUERY
--->
<cfreturn _qData />
</cffunction>
<cffunction name="create" output="false" returntype="Void">
<!---
INSERT QUERY
--->
</cffunction>
<cffunction name="update" output="false" returntype="Void">
<!---
UPDATE QUERY
--->
</cffunction>
<cffunction name="delete" output="false" returntype="Void">
<!---
DELETE QUERY
--->
</cffunction>显然,get方法和read()方法将返回值。
但是,让其他方法返回值--可能是布尔值--有什么好处吗?
我在Flex/ActionScript中工作过,记得在大多数情况下,我需要从方法返回一些值,并为结果设置一个变量,以防止下一行代码处理:
function myFunc() {
x = getSomething();
y = getSomethingElse(x);
}发布于 2012-04-24 23:26:55
如果在setter上返回this,则可以链接setter。我认为默认情况下,CF10访问器会返回this来启用链接。
前段时间我读到过返回void会更有效,但我不确定这是不是真的。我怀疑这种差异会不会很明显。
https://stackoverflow.com/questions/10300886
复制相似问题