memo/20120719
created 2012-07-19 modified 2012-07-19
最近プログラムつくるときのお気に入り構成。
は!しまった、ポリシーに反してアルファベットで書いてしまった...
いわゆる普通のアプリケーションの場合
main() Mainつくってメインループ呼ぶ
Main 全部を所有。メインループはここに書く
◆
|
|__Configure プロセスの設定、コマンドラインオプション等
|
|__EventStore アプリ内のイベント保持。キー状態保持とか
|
|______Algorithm ユーティリティ関数群。出力は戻り値かoutパラメータにする
| |
| ◇
|____Action アプリの行動。箇条書き風のメソッド実装を目指す
| ◇
| |
|____DataMgr データ管理
◇
|
|__*_DataEntry アプリ実行に沿って増減するデータ
データ入出力が大事な場合
Main
◆
|
|__Configure プロセスの設定、コマンドラインオプション等
|
|
|__IOMgr 会社で言うと営業部
| |__TransactionPool
| | |__Transaction 受けたもの、送るものの1セットを保持。トヨタでいうカンバン
| | |__RecvPacket 外部とのやり取りフォーマット
| | |__SendPacket
| | |__RecvData 内部処理フォーマット。パケットごとにたくさんつくる
| | |__SendData
| |
| |__Layer1Decoder
| |__Layer1Encoder
| |__Layer2Decoder
| |__Layer2Encoder
| |
| |__PeerAHandler あるお客さんAの営業担当者
| | |__PeerAReceiver 受信 (連番管理、...)
| | |__PeerASender 送信 (連番管理、...)
| |__PeerBHandler
| | |__PeerBReceiver
| | |__PeerBSender
| |__PeerCHandler
| | |__PeerCReceiver
| | |__PeerCSender
| |
| |__Timer
|
|__ActionMgr 会社で言うと内勤部署。Transactionは、ActionMgrというベルトコンベアを通って、1件終了。
| |
| |__State1Action 状態ごとに違う動きするならステートパターン使う。
| |__State2Action
| |__State3Action
|
|__DataMgr データ管理。会社で言うと経理、倉庫、金庫、資料室。
◇
|
|__*_DataEntry アプリ実行に沿って増減するデータ
|
|__*_ReservedTransaction 社内で保留されてるトランザクション
RecvData
△
|__CommandAAARequest PeerA からの要求 とか
|__CommandBBBRequest PeerB からの要求 とか
|__CommandCCCResponse PeerC からの応答 とか
SendData
△
|__CommandAAAResponse
|__CommandBBBResponse
|__CommandCCCRequest
は!しまった、ポリシーに反してアルファベットで書いてしまった...
凡例 持ち主 ◆---- もたれるひと 参照するひと ◇-- 参照されるひと 基底クラス △ |__派生クラス