栗原です。
素モードです。
firo [mailto:firo@....jp] wrote:
> > 1.ファイルに同じアドレスの行が複数あった場合。重複は
> > 別々じゃなくて、1つのMemberってしちゃえばいいのよね。
> >
後からメールするといいながら、帰宅してから返事を書こうと
思っていたのですが、コーディングに入られてしまったようなので、
取り急ぎ、気になった点だけ。
メンバリストって、今現在はメンバのメールアドレスだけですが、
別ストーリにメンバの配信状態も管理するような話がありませんでし
たっけ?
その場合も、最初に読み込まれたメンバ情報が優先されるみたいな制
約が明確であれば問題ないのですが。
> 今のままだと、addメソッドのほうで、同じアドレスをもったMember
> インスタンスをaddしようとすると、IllegalArgumentExceptionが
> 発生しちゃうわ。でも、これはコンストラクタがaddを使うところ
> を次のように変えればいいわね。
>
> Member member = new Member(mailAddress);
> try{
> add(member);
> }catch(IllegalArgumentException e){
> continue;
> }
例外が発生することが分かっているならば、明示的に対処したほうが
良いと思います。
ここは、addメソッドを変更して、、、
public void add(Member aMember) {
if (contains(aMember))
return;
members.add(aMember);
}
とした方がシンプルだと思います。
# テストケースも変更しないと。
と思って、送信しようとしたのですが、addにやらせるのは変ですね。
折角containsメソッドがあるなら、それでチェックしてからaddすれ
ばいいはず(自分に言い聞かせてます。)
Member member = new Member(mailAddress);
if (contains(member))
continue;
add(member);
として、addの実装はそのままとか。
> それと、[XP-jp:00972]で三郎君が指摘してくれたとおり、上記コ
> ードのすぐ下の部分は、次のように修正するわ。
>
> } catch (FileNotFoundException e) {
> throw new FileNotFoundException();
> じゃなくて
> } catch (FileNotFoundException e) {
> throw e;
> こうね。
>
> それじゃ、コンパイルして、テストをします。
>
> はい、テスト通りました。
Configに習って、BadMemberFileExceptionクラスに置き換えたい
のですがパッケージを別にしたほうがシンプルに収まるかなと思っ
ています。
ちょっと今すぐ思いつかないので、後回し!すみません。
---
Tetsuya Kurihara
tetsuya@....jp