プログラムを書いていると、「あれ、また同じことを書いているぞ」と思うことがある。同じコードを何回も繰り返すことは明らかに無駄なので、偉大な先人は「サブルーチン」というものを発明した。同じプログラム内に、同じコードが複数あれば、それを1つにまとめ、それを呼び出すようにすれば無駄は減る。 しかし、別のプログラムに同じコードがある場合に、このテクニックは使えない。そこで、偉大な先人は「ライブラリ」というものを発明した。複数のプログラムで繰り返しよく使われるコードは、個々のプログラムのソース・コードとは別にまとめておき、各プログラムはそれを参照すればよい。これで、また無駄は減った。 しかし、まだ完ぺきではない。コードの基本的な枠組みは共通しているが、内容は同じではないというパターンもあるのだ。このようなケースでは、コードをライブラリにする方法はなじまない。共通しているのは枠組みだけであって、具体的