2007/11/11
今回の目玉はFormatterです。サブクラスを定義しなくとも、動的にシリアライズのフォーマットを変化させることができます。
SixxContext applyFormatters: {SixxMockLiteralArrayFormatter on: Array} while: [
array sixxString.
]
とすると、いつものArrayのフォーマット書き出しが、SixxMockLiteralArrayFormatterの方へと移譲されます。
'<sixx.object sixx.id="0" sixx.type="Array" sixx.formatter="SixxMockLiteralArrayFormatter" >
<sixx.object sixx.id="1" sixx.type="String" >#(1 2 3 4 5)</sixx.object>
</sixx.object>'
書き出されたSIXXには、新たなattributeであるsixx.formatter="フォーマッタ名"が埋め込まれます。SIXX読み込み時には、同名のFrmatterがイメージ内にあれば、デシリアライズが移譲されるというわけです。
「インスタンスの状態に応じてシリアライズのフォーマットを最適化したい」等の場合に有効です。
お試しください。
その他の機能はこちら。
リッチな機能を提供しつつも、比較的シンプルに収まっているのはSmalltalkの威力であると思います。
記事を見てコメントする | 友だちに紹介する
Posted in Uncategorized |
Leave a Comment »