今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

やっぱり継承は分かりにくい

ずいぶん前に書いた、Template Method パターンを使用したクラスをメンテナンス。具体的にはキューを制御するためのクラスなんだけど、Java5 には便利なキュー制御のクラスがいくつも追加されている。ちょっとうらめしい。
実際に欲しかったのは DelayQueue に近い機能。そして AbstractQueue に相当するクラスで TemplateMethod パターンを利用して、TemplateMethod でキューへの追加と、キューからの取り出し条件をサブクラスで記述できるようにしてある。
でもね、やっぱりね、たとえ自分が書いたコードだとしても、書いてから長い時間が経過した後でコードを読むと、継承を使ったものはわかりにくい。コードを読むときに、ふたつのクラスのコードを行ったり来たり。
継承って、スーパークラスとサブクラスが混ざっている状態。しかもサブクラスはスーパークラスのフィールドをアクセスできたりするもんで、その辺が分かりにくい原因のような気がする。

Google でメモ

Google のパーソナライズドホームを使うと、検索履歴を覚えてくれる。最近、これをメモ代わりに使ってみたり。例えば、電話中に電話番号をメモしなきゃいけないとき、Google の検索窓で「093-xxx-xxxx さわだ」と入力して検索しとく。結果が見つからなくてもかまわない。
そうしとくと、パーソナライズドホームの検索履歴に残る。後からその情報が必要になったときに、検索履歴から拾い出せばいい。通常は1日に数回の検索をする程度だから、数日は情報が残る。何かの情報を捜し求めて検索しまくると、あっという間に履歴から消えちゃうので、そんときは注意が必要。
check*padを使えばいいんだろうけど、check*padは常に開いているわけではないし、トップからリストを選択するための手間がかかる。メモを取りたいときに即座に使えないのが弱点。
その点、Google パーソナライズドホームは Opera でほぼ常時表示しているし、もし検索結果のページをクリックして目的の情報のあるサイトに移動していたときでも、Ctrl+スペースでワンタッチで戻れる。戻れば検索窓にフォーカスがあるから、そのままメモしたいことを入力できる。
Google で検索履歴に残しといて、残す必要があるものだけをcheck*padに登録すると、とてもいい感じで使えている。