***すれ立てるまでもない質問はここで 第8刷***
■ このスレッドは過去ログ倉庫に格納されています
0372デフォルトの名無しさん
NGNG具体例として Copy & Paste 機能を持つエディタを作ることを考えてみる。構造化設計では、機能を中心に
モジュールを細分化していくわけで
1. Copy & Paste 機能
1-1. Copy 機能
1-1-1. Copy 機能では Copy 開始地点と終了地点を指定する機能
1-1-2. 開始地点と終了地点を指定した上で、コピー用のデータを保存しておく機能
1-2 Paste 機能
1-2-1. Paste 機能では Copy 地点を指定する機能
1-2-2. コピー用のデータを取得し、現在位置に挿入する機能
といった感じで設計を進めていく。オブジェクト指向では機能よりも、まずは問題領域を構成する要素に着
目する。
エディタ
編集対象のファイル
ファイルそのもの
編集用バッファ(ファイルを読み込んだバッファ)
コピー用バッファ
画面表示
ファイル内容の一部を表示するウィンドウ
カーソル
こんな感じで構成要素を洗い出し、その上で各要素が持つべき状態と機能を考える。Copy & Paste 機能を
実装するためには、
カーソルから現在位置を取得するメソッド(コピー開始、終了、ペースト位置の設定に使う)
コピー用バッファに値を設定するメソッド、コピー用バッファから値を取得するメソッド
編集用バッファに文字列を挿入するメソッド
なんかが必要になりそう。またコピー用バッファは複数あったほうが便利かもしれない、また編集用バッファ
とコピー用バッファでは実は共通項目が多いから、汎用のバッファクラスを用意して、それから編集用の機能
を追加した編集用バッファクラスと、コピー用バッファクラスを継承して作れそうだ、なんて考えながら設計し
ていく。
構造化とオブジェクト指向だと、ずいぶんと感じが違うでしょ。
■ このスレッドは過去ログ倉庫に格納されています