なんとなくオブジェクト指向について偉そうに語ってみる2-1

さて、part1を書いたのはいつだっただろうか?
更新頻度を上げろとのクレームが来たので前回書いた内容をがんばって思い出しつつ
書いてみることにする。


前回の内容を見ていて思ったのだが、
はてなキーワードにリンクが貼られてる単語が秀逸だな
何となく技術者っぽいぞ


まあそれはいいとして
オブジェクト指向について語ろう


前回の最後に具体例をと書いてあったので
以前私が後輩に出した「電話帳を作る」っての例に簡単に設計してみたいと思う


まず、作るものだが
ファイルに名前と電話番号を記録したものを用意する
そこからデータを読み出し以下の操作をできるプログラムを作る
・名前から電話番号を検索(完全一致のみでよい)
・名前と電話番号を新規登録
・既に登録されている場合は電話番号を更新
・データの削除


これだけの簡単なプログラムである
では、まず何が必要か考えてみよう


まず、ファイルからデータを読み込んだり、新規登録や更新の際にはデータを書き換えるのでファイル入出力の処理が必要になりそうだ


次に必要なのは、要件を満たす処理を行うクラスが必要そうだ


後は、ユーザが操作するインターフェースが必要


とりあえず、この3つがあれば動きそう


では、次に動作の流れを考えてみることにする


今回は、個人的に使用する電話帳を想定するため、すべてのデータを一度にメモリに読み込めることにする(そもそも、授業レベルの知識しかない人に出した課題なのでスケールの話とかは求めない)
また、インターフェースの部分を変更すればGUIも実現可能だが、基本的にはコンソール上で動作するものを作成するものとする


動作の流れは以下のようになる
1.プログラムが起動したらファイルからデータを読み込む
2.ユーザに対してどういった操作を行うかを聞く
3.ユーザから入力
4.入力された内容に応じて処理の実行
5.手順2に戻る
6.終了する場合はファイルでデータを保存する


ユーザからの入出力はインターフェース部分が担当するので
これらmainで行う処理の流れをインターフェースにやってもらうことにする


次にファイル入出力は最初にデータ取得と
最後の保存があるだけなのでその二つがあればよい


今回の課題のメインとなるデータに対する処理を行う部分だが
長くなってきたので次回にまわすことにする
といってもこのまま引き続き書くが…