テキストエディタテキストエディタは、簡単に言うと、プレーンなテキスト情報を保持し、ユーザの指示により内容を表示、修正するプログラムである(図1参照)。1のような構造はオブジェクト指向な設計と親和性が高い。テキストデータをメンバ変数に持ち、データを参照、変数するメソッドを持つオブジェクトと、ユーザの指示を解釈し、適切なメソッドを呼び出すオブジェクトを導入するとよい。前者をエディットエンジン、後者をUIオブジェクトと呼ぶ(図2参照)。ユーザの編集操作とはキーの押下やマウス、メニュー選択である。オブジェクト指向的なOSでそのような操作を行うと、イベントが発生し、プログラム内のイベントハンドラが呼ばれ、必要な処理が行われる。したがって、この部分のプログラムはOSに大きく依存することになる。エディットエンジンは純粋にテキストデータの操作を行うだけなので、(文字コードを何にするかという問題を除けば、)OSに依存しないので、普遍性が高いと言える。図2の構造はMFCのドキュメント・ビューアーキテクチァーと本質的に同じである。あり、それぞれの派生クラスを定義・実装することがプログラミングとなる。派生クラスがエディットエンジンを所有するのがよいと考える。