END機能の概要
概要
END機能は、アプリケーションの終了処理を担当する機能群です。 安全なリソース解放とデータの整合性を保ちながら、アプリケーションを終了します。
主要機能
終了処理
処理 |
機能 |
|---|---|
リソース解放 |
メモリ・ファイルハンドル・音声チャンネルの解放 |
設定保存 |
現在の設定を次回起動用に保存 |
一時ファイル削除 |
キャッシュ・ログファイルのクリーンアップ |
確認処理
終了確認: ユーザーが意図した終了かの確認
保存確認: 未保存データがある場合の保存促進
強制終了対応: 異常終了時のデータ保護
画面構成
終了確認ダイアログ: 「本当に終了しますか?」
HOME戻りボタン: メインメニューへの復帰オプション
背景: シンプルで分かりやすいデザイン
技術仕様
アーキテクチャ
END機能はシンプルな構造で実装されています:
Controller層 (
common/end/*.py)Service層 (
common/end/service/*.py)
終了シーケンス
1. 終了要求受信
2. 現在の状態確認
3. 未保存データチェック
4. ユーザー確認取得
5. リソース解放実行
6. 設定データ保存
7. アプリケーション終了
リソース管理
解放対象リソース
音声リソース: pygame.mixer の全チャンネル停止
画像リソース: Surface オブジェクトの解放
ファイルハンドル: 開いているファイルの適切なクローズ
ネットワーク: 通信接続の切断(将来実装)
解放順序
ユーザーインターフェース: 画面更新の停止
音声システム: 全音声の停止・チャンネル解放
ファイルシステム: 開いているファイルのクローズ
メモリ: 大容量オブジェクトの明示的削除
システム: pygameの終了処理
データフロー
正常終了
終了要求
↓
END Controller(終了確認)
↓
END Service(リソースチェック)
↓
リソース解放処理
↓
設定保存処理
↓
システム終了
異常終了対応
異常検知
↓
緊急リソース解放
↓
エラーログ出力
↓
復旧用データ保存
↓
強制終了
関連ファイル
Controller層
common/end/action.py- 終了操作処理common/end/display.py- 終了画面描画common/end/sound.py- 終了音再生common/end/status.py- 終了状態管理
Service層
common/end/service/status.py- 終了判定ロジック
リクエスト・レスポンス
common/layer/request/end/*.py- END機能のリクエストオブジェクト
エラーハンドリング
想定ケース
状況 |
対応 |
|---|---|
正常終了 |
標準的な終了シーケンス実行 |
強制終了 |
最低限のリソース解放のみ実行 |
リソース解放失敗 |
エラーログ出力・次回起動時に警告表示 |
設定保存失敗 |
デフォルト設定での次回起動 |
ログ出力
終了処理の各段階でログを出力:
LOG("終了処理開始")
LOG("リソース解放完了")
LOG("設定保存完了")
LOG("アプリケーション終了")
今後の拡張予定
使用統計送信: 匿名使用データの収集・送信
自動バックアップ: 終了時の自動データバックアップ
クラッシュレポート: 異常終了時の詳細レポート生成
復旧機能: 次回起動時の自動復旧処理強化
カスタマイズ: ユーザーによる終了処理のカスタマイズ