よりテキストエディタを実装するための技術について述べる。見通しがよく柔軟で拡張性に優れたコードを示すことを主目的とする。ジェネリックなプログラミングに慣れていないと理解が困難で、逆に見通しが悪いと感じるかもしれない。そんな人はどこかで勉強して出直してくるように。言うオイラもジェネリックなプログラミングに目覚めて1年足らず。間違いや理解が浅い部分もあるに違いない。不手際を見つけた場合はメールまたはtwitterで優しく突っ込んでね(はあと)。バッファテキストエディタにおいて1次元のテキストの並び(テキストシーケンス)を管理するクラスはバッファと呼ばれる。バッファのためのデータ構造には様々のものがある。最強のデータ構造というものはなく、それぞれ長短所が異なる。OSやCPU・メモリ・HDD速度が異なれば優劣が逆転する場合もある(かもしれない)。したがって、バッファクラスのインタフェースをよーく考えて決め、データ構造を完全に隠蔽しておくのがよい。それを実装しクラスを入れ替えるだけでよい。バッファクラスのインタフェースであるが、よく練られ実績のあるものを採用しておくのが無難である。具体的にはSTLに準じたインタフェースを備えるクラスにするのがよいと考える。モデルビューアーキテクチャのC++フレームワークである。ひとつのドキュメントが複数のビューを保持することが出来る。ドキュメントクラスがバッファオブジェクトを所有し、ビューがそれを参照して画面描画するという枠組み編集操作はビューで解釈され、バッファの編集メソッドがコールされる。