我主要使用ColdFusion,一种非编译语言,但这是所有语言的一般性问题。
我正在使用getter / setter以及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);
}
答案 0 :(得分:5)
如果您在设置者身上返回this
,则可以链接设置者。我认为CF10访问器返回this
以默认启用链接。
我读到,返回void
一段时间会更有效率,但我不确定它是否真实。我怀疑差异会很明显。