矢崎です。
Kaoru Hosokawa wrote:
> ホソカワです。
>
> ストーリー1は、やまのさんの案[XP-jp:00748]を採用し、下記のタスクにわける事
> にします。
>
> 1. Mailerがメール本文とメール設定ファイルを取得する。
>
> 2. メール設定ファイルをパースし、配送先のアドレス等をメモリ上に保存する。
>
> 3. Mailerは、Mailインスタンスをnewし、本文および配送先アドレスを
> Mailインスタンスにセットする。
>
> 4. Mailer は、Mail インスタンスを配送エージェントクラスにわたし、配送を
> 依頼する。
>
> 5. 配送エージェントクラスは sendmail を起動する。
>
>
確認ですが、私は、これら全てを1タスクと考えています。
それで、もう少しクラスが見える形で流れを考えてみました。
#変形ですがCRCをやったつもり、、
そこで、、、、
これを1タスクと取り扱ってよいか?
流れは以下でよいか?
ご意見ください。
流れが固まればペアにはいりたいと思っています。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mailerのmain(String args[])
1.標準入力よりメール本文を取得する
2.引数よりメール設定ファイルの名前を受け取る
3.メール設定ファイルの名前を引数に、Config(設定ファイル)を
new
Configのコンストラクタ(String fileName)
1.fileNameで指定されているファイルからメール設定情報を取得
し、内容を解析し、インスタンス変数にいれておく
2.return
Mailerのmain(String args[])
4.Mailを引数なしでnew
5.Mailインスタンスに対して、setMailText(標準入力から得た本文)
MailのsetMailText(String text)
1.textの内容を解析し、Subject、差出人、その他ヘッダ情報、本
文等、それぞれインスタンス変数にいれる
2.return
Mailerのmain(String args[])
6.Configからメンバリストのファイル名を取得する
getListFileName()
Configの各getListFileName()
1.変数にいれてあるメンバリストファイル名をreturn。
Mailerのmain(String args[])
7.MemberListをnew。引数はメンバリストファイル名。
MemberListのコンストラクタ
1.引数で取得したファイルを読み込み、Memberインスタンスを
必要な数だけnewし、自分のコレクション変数にいれておく。
Mailerのmain(String args[])
8.MemberAuthorizationをnew。引数はMemberList。
[XP-jp:00826]参考
9.Mailから、差出人のアドレスを取得。aMail.getFromAddress()
MailのgetFromAddress()
1.差出人のアドレスをreturn
Mailerのmain(String args[])
10.aMemberAuthorization.verify(差出人のアドレス)
[XP-jp:00826]参考
11.メンバ以外からのメールであれば、ここで処理終了
Mailerのmain(String args[])
12.Configから必要情報を取り出す。**[XP-jp:00804]参考
1)aConfig.getToAddress() /*変換前の共通の送り先アドレス*/
2)aConfig.getMlCount()
3)aConfig.getMlName()
4)aConfig.getMlServer()
5)aConfig.getMlInfo()
Configの各getXXX()
1.それぞれインスタンス変数の値を(必要なら加工して)return。
Mailerのmain(String args[])
13.Configから取得した情報をMailインスタンスにセット
1)aMail.setToAddress(toAddress)
2)aMail.getMlCount(count)
3)aMail.setMlName(name)
4)aMail.setMlServer(serverName)
5)aMail.setMlInfo(mlInfo)
Mailの各setXXX(xxx)
1.引数で受け取った情報をそれぞれ用の変数にセット
Mailerのmain(String args[])
14.new DeliveryAgent()
DeliveryuAgentのコンストラクタ()
1.インスタンスができるだけ
Mailerのmain(String args[])
15.Mailインスタンスを引数にDeliveryAgentのsendMailをcall
DeliveryAgentのsendMail(Mail)
1.引数で受け取ったMailインスタンスから、メール全文(ヘッダ
と本文)をテキストで受け取る
MailのgetMailText()
1.インスタンス変数の情報を使って、メール全文を整形し、
return。
DeliveryuAgentのsendMail(Mail)
2.sendmailを起動
3.sendmailの標準入力に、メール全文を流す
#sendmailへの受け渡しのところ、自信なし!
--
矢崎博英 firo@....jp