商売柄、ライブラリ/ユーティリティの類を書くことが多いす。
大抵僕が利用者にどんなの欲しいかざーっくりとしたイメージを訊いて、
それを基にスペック固めて実装すんだけども。 僕が悩むのは
いわゆる「落し処」。 ともするとオーバースペックになりがちなんですわ。
車輪の再発明でも悩んでるんですよね。
Model側が弱参照でハンドラを管理すればView側では
オノレが消える際にデタッチ(RemoveHandler)せずに済む。
...けどさ、そもそもViewってばModelのことを知ってるのよ。
知ってるからこそオノレのハンドラをModelにアタッチできたわけよ。
んだからオノレが死ぬ間際にデタッチするのはそんなに面倒な
こっちゃないはずよ。
それにね、フツーに(強参照)でアタッチするなら AddHandler なり
イベント += ハンドラ てやるんだけど、弱参照アタッチだとやり方が変わる。
利用者側にはいつもと異なる使い方を強いることになりゃせんかと。
「死ぬときゃちゃんとデタッチしる!」さえ利用者が守ってくれれば
フツーに AddHandler/RemoveHandler, +=/-= で一向に構わんのです、
不慮の事故でViewが客死するよなシチュエーションが想定されるんでもないかぎり。
この例に限らず、善かれと思って必死こいてこさえた機能が不評
だったり使ってもらえなかったり、簡単にしたつもりが実はややこしく
してたり。
「過猶不及也 : 過ぎたるはなお及ばざるがごとし」なのだなぁ...