netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2003-09-28 古い日記からの変換データ ▲
2004-09-28 古い日記からの変換データ ▲
_ [論文] Before/After の合成 ▲
Ira R. Forman, Scott Danforth, Hari Madduri:Composition of Before/After Metaclasses in SOM.Proceedings of OOPSLA 94, pp.427-439, Portland, Oregon, USA, 1994.
Before/After メソッド(AspectJでいう before/after advice)を複数同じクラスにくっつける場合にはどうしたらよいか,というので・メタクラス2個を順序付きで合成したメタクラスを作って, それをインスタンス化したクラスを作る・合成したいメタクラスを個別にインスタンス化した クラスを作って,それらのクラスを多重継承・一方のメタクラスをインスタンス化したクラスを継承して クラスを作り,そのクラスにもう一方のメタクラスをくっつけるという手法があるが,メタクラス2個を順序付きで合成したメタクラスを作るという方法が,関係が明示的で良い,というふうに言っている.
ただ,3個以上のメタクラスを合成するときの結合規則の問題(A(BC)と(AB)Cが等しい振る舞いをする)や,他にどのメタクラスがかかわっているか分からないのでC=AB, D=BA といったメタクラスがあるときにE=CD を作って貼り付けると ABBA と同じメソッドが2回ずつ動いてしまったりする問題がある.また,read-onlyなメソッドに対してのみ動きたいとか,条件付きのメタクラスも存在する上,本来動くべきメソッドを動かしたくないメタクラスも扱っていく必要がある.
クラスが名詞ならメタクラスは形容詞に相当する,とかいう言い方をしているのは面白いところだけど.
2007-09-28 ▲
_ [お知らせ][VolumeDeskbar] Volume Deskbar 1.1.0 (Vista 対応版) リリース ▲
Vista での音量制御に対応しました.作業時間の不足により,まだ「既定のデバイス」以外は動かせませんが,普通にシステム音量の制御だけを行う人には十分だと思うのでリリースします.
今回のリリースは,2000/XP を使い続ける限りは,意味のない更新です.
謝辞:今回の実装には,ykamiさんによる D_DevLog Windows Vista でマスターボリュームを変更するサンプルコードに含まれた MMDeviceAPI の Delphi 版ヘッダを使わせていただきました.このサンプルのおかげで,かなり手間を省くことができました.