タグ

2013年9月6日のブックマーク (2件)

  • Visitorパターンで使われている"ダブルディスパッチ"とは? - Pixel Pedals of Tomakomai

    Wikipediaのダブルディスパッチの解説が、とてもいいこと書いてあるんですがどうもわかりにくかったので、Javaで簡潔に書き直してみました。 概要 メソッドのオーバーロードでは昔以下で書いたように動的なメソッド選択ができません。 オーバーロードはコンパイル時にメソッドが選択、つまり、変数の宣言されている型で判断されているようです。 オーバーロードとオーバーライドの混沌 ダブルディスパッチによって、オーバーロードされたメソッドをruntimeに動的に選択できるようになります。 ダブルディスパッチで解決できる問題例 次のようなコードを書くと、適切なexecuteが呼べません(コンパイルできない)。これは、メソッドのオーバロードは静的に評価されるためです。 interface MyClassB {} class MyClassB1 implements MyClassB {} class M

    Visitorパターンで使われている"ダブルディスパッチ"とは? - Pixel Pedals of Tomakomai
  • SAMLについて自由勝手に紹介 - snippets from shinichitomita’s journal

    宿題をid:ZIGOROuさんから課せられたので、早めにやっつけで片付けます。でも入門、というのとはちょっとちがうだろうな。今回は、SAMLを知っている人には当たり前の話でも、知らない人はきっとわからないだろうことを補足するだけです。しかもとみたの主観的におもしろいと思ってるところだけ。 そもそも僕自身の能力的な話で、Libertyの時代も仕様は気になったところしか読んでないので、網羅的に書くのは正直つらいし、割に合わないと感じてます。ただ、今回はきっとtkudoさんが添削してくれるはずなので、かなりのびのびと書いちゃいます。 歴史のおさらい まず間違え易い点として、SAML1.0とか1.1ってのは、SAMLが出たてのときの仕様なので、いまの話(v2.0)と結構違う。結構SAMLで検索するとこのころの話が引っかかったりする。むしろ今のSAML 2.0を調べようとしたらLiberty ID-