スケジュール帳・作業記録

いままで1つのクラスにまとまっていたMVC全ての役割を、それぞれのクラスに分割した。もともと1つだったので、互いに依存しまくりだけど、これから徐々に抽象度を高めていくつもり。
いままでは、YCUIAppというクラスが、コマンドの入力受付、結果の表示、状態の保持およびファイルの操作等の全ての業務をこなしていた。で、最終的にはCUI版とGUI版それぞれを同じ実装で両立させたいと思っているのと、幅をネットワークに広げたいという意味もあり、クラス分割という手術に踏み切る。
コマンド入力については従来どおりにYCUIAppが行う。表示についてはYCViewが行い、状態の保持はYCEnvironmentが、ファイルの操作などはYCDatabaseが行う。
コマンドが入力されると、YCUIAppからコマンドオブジェクトが評価される。コマンドオブジェクトは、YCEnvironmentとYCViewに命令を発行してそれぞれ操作を行うという感じ。