JavaのSwingもMVCで作成されている。例えばJListというGUIのリストを示すコンポーネントにはListModelというインターフェースがある。インターフェースなのですべてのメソッドを実装しないといけないかというと、そういうわけでもなく、AbstractListModelという抽象クラスにデフォルト実装があり、これを継承して必要なクラスを作っていく。もちろんこんなModelを使わなくてもJListのコンストラクタにVectorをつっこめばできるんだけど、せっかくなので使うことにした。しかし、MVCを理解していないとなんでこんな回りくどいことをしているのかわからないだろうな。