ホソカワです。
on 2000/08/21 7:32 PM, tetsuya@....jp at tetsuya@....jp wrote:
> 栗原です。
>
> firo [mailto:firo@....jp] さん wrote:
>
>> なるほど、確かに差出人の認証を行う必要がありますね。
>> #でないと、誰でもだせるMLになってしまう(それでもいいという
>> 考えもあるやもしれませんが)
>>
>> これはストーリ1にいれて、別タスクにしましょうか?
>
> 分かりました。
>
>> 差出人の認証のところは、先述したとおり、必要だと思います。
>> 簡単なCRCをやって、タスクのイメージを具体化するというの
>> はどうでしょう?
>
> ストーリ1に関係するであろうクラスの CRC を書いてみました。
> ただし、メール送信部の構造がピンとこないのでどなたかお願いします。
>
> # Member クラスってメールアドレス以外の情報は何を持っているので
> しょう???
>
> +---------------------------------------
> | MemberAuthorization
> +---------------------------------------
> | 有効な会員かチェックする |MemberList
> | |Member
> +---------------------------------------
>
> +---------------------------------------
> | MemberList
> +---------------------------------------
> | 会員リストに追加する |Member
> +----------------------------|
> | 会員リストから削除する |
> +----------------------------|
> | 会員情報を取得する |
> +---------------------------------------
>
> +---------------------------------------
> | Member
> +---------------------------------------
> | メールアドレスを取得する |
> +----------------------------|
> | メールアドレスを設定する |
> +---------------------------------------
「太郎、花子」コンビで書いてみます。
太郎:まずは、テストを書きます。(太郎がキーボードを持っています。)どう?
Memberをクリエイトして、メールアドレスが等しいかどうかチェックしています。
public void testNewMember() {
String mailAddress = "aaa@....ccc";
Member member = new Member(mailAddress);
assertEquals(member.getMailAddress(), mailAddress);
}
花子:いいんじゃないの。ただ、コンストラクタ−にメールアドレスを渡しているの
はどうして?setMailAddress()で後から設定すればいいじゃない?
太郎:メンバーはメールアドレスが必須だから、コンストラクタ−のパラメータにし
たの。
花子:なるほど。じゃ、メールアドレスのチェックは?変なメールアドレスはエラー
で返すべきでは?
太郎:変なメールアドレスかどうかのチェックは大変だし、まだ、問題になっていな
いから、後回しにします。いい?じゃ、コンパイルしますね。(もちろん、エラーで
ボロボロ。)さあ、Memberを書こうか?
class Member {
private String mailAddress;
public Member(String mailAddress) {
this.mailAddress = mailAddress;
}
public String getMailAddress() {
return mailAddress;
}
}
(これをコンパイルし、テストを実行すると、テストもパスします。)
花子:うまく行ったね。setMailAddress() は、書かないの?
太郎:今は、必要がないから、書かなくてもいいんじゃない?ヤグニ(YAGNI)って
やつ。
花子:今度は、私がキーボードを持ちます。MemberListを書きますね。まずは、テス
トから。
public void testNewMemberList() {
MemberList memberList = new MemberList;
assertEquals(memberList.getSize(), 0);
}
public void testOneMemberList() {
MemberList memberList = new MemberList;
Member member = new Member("aaa@....ccc");
memberList.add(member);
assert(memberList.getSize(), 1);
}
public void testTwoMemberList() {
MemberList memberList = new MemberList;
Member firstMember = new Member("aaa@....ccc");
Member secondMember = new Member("ddd@....fff");
memberList.add(firstMember);
memberList.add(secondMember);
assert(memberList.getSize(), 2);
}
// ...
という感じでMemberListの続きとMemberAuthorizationを書いてみます。どなたか、
実際にコンパイル、実行していただけると嬉しいです。
--
Kaoru Hosokawa
khosokawa@....com