リファクタリングがしやすいのは、静的型付け言語
■ このスレッドは過去ログ倉庫に格納されています
0492デフォルトの名無しさん
2013/02/22(金) 00:40:13.95| memoizedObject |
memoizedObject := Memoizer allWith: TargetType new. "TargetTypeの全てをmemoizeする場合"
memoizedObject := Memoizer selectWith: TargetType new selectSelectors: #(#exampleSelector: #otherSelector:) "TargetTypeの一部をmemoizeする場合"
memoizedObject exampleSelector:10. "MessageであるexampleSelector:10がMemoizeされる"
doesNotUnderstand: aMessage
| result |
( cache having: aMessage )
ifTrue:
[
^cache at: aMessage, "前の記憶した内容結果を返す"
]
ifElse:
[
"新しい結果を採取する"
result := aMessage sendTo: target.
cache put: aMessage with: result.
^result.
].
■ このスレッドは過去ログ倉庫に格納されています