技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Aspect 指向のライブラリで、インスタンスキャッシュ(シングルトン)しようとして頓挫した、、、

Aspectが全てシングルトンだと過程して、「AAspect」→「BAspect」→「メソッド実行」のチェーンを組んで、実メソッド実行後に「実行メソッド」→「BAspect」→「AAspect」で戻れる実装が再起を除いて思い浮かばない。
再起でスタックを組んでしまうと、「BAspect」←→「AAspect」の関係が強固なものになってしまう。
この状態で別スレッドからアスペクトを実行されたとき、思わぬ組み合わせとなったり、スタックが競合したりと、色々問題が起きてしまう。
スレッドセーフも考えたが、そもそも static で無い以上は速度劣化が起きてしまう。
BeforeMethodInvoke と AfterMethodInvoke のように、メソッドの実行前、実行後のメソッドを分離してしまえば、イベントチェーンでどうとでもなるのだが、、、、。
ということで、構造を見直しただけで今日が終わってしまった、、、。

http://www.white-azalea.net/index.php/p/azaleaworks/downloads/

こうしてソースを晒すとレビューになりそうね、、、、、
すまない、StyleCop も FxCOP も通してないんだ、、、、|||orz

蛇足。お昼休みに FizzBazz して遊んでみた。
C 言語久々に触るなぁ、、、、96文字、printf 邪魔だし、何か小手先の技ばっかで、アルゴリズムを見ていない。
そんなに悩む気はないので、この辺で放置するけど、、、、もちっと面白い解がないものか、、、。

main(i){
for(i=0;i++<50;)
((i%5?1:!printf("Bazz, "))&&
(i%3?1:!printf("Fizz, ")))?printf("%d, ", i):0;
}