関数による操作とドメインエンティティの操作
関数ならcopyの変更を返却して、関数を実行した側がswapする。 code:javascript
function doSomething() {
globalVar = modify(globalVar) // swap
}
function modify(localVar) {
copy = copyObject(localVar) // copy
copy.modify() // modify copy
return copy // return copy
}
code:javascript
domainObject.doSomething() // execute method
// on domain object
fun doSomething() {
this.attributes = attributes.modify() // copy to modify to swap
}
// on value object
fun modify() {
copy = copyObject(this) // copy
... // modify copy
return copy // return copy
}