私が開発しているフレームワーク用の電子メールシステムを構築しています。これまでのところ、私は、あなたが簡単な実装として期待まさにそれだSimpleMailMessageを持ってデザイン:Javaでの電子メールシステム
public interface MailMessage {
public String[] getTo();
public void setTo(String[] to);
public String getFrom();
public void setFrom(String from);
...
// you can guess the setters/getters here
...
}
の線に沿って一般的なはMailMessage電子メールメッセージのすべての異なる種類が実装するインタフェース、何かを持っています(暗号化も暗号化もなく、プレーンテキストのみ)。
私は、抽象ファクトリとして使用されるMailMessageFactoryインターフェイスを作成しました。 SimpleMailMessageのインスタンスを生成するためにファクトリを実装するSimpleMailMessageFactoryがあります。
フレームワークに送信するフレームワークの1つのタイプは、アラートメールメッセージです。これは本質的には、[アラート]を件名の前に付けた通常のメールメッセージです(もう1つは注文項目の「リスト」は、電子メールの文字列にリストを変換するための責任がどこにあるのかはわかりません。私はデコレータを作成することができSimpleMailMessageをサブクラス化し
public class AlertMailMessage {
...
public void setSuject(String subject) {
this.to = "[Alert]" + to;
}
...
}
など何かにsetSubject(String型の主題)メソッドをオーバーライドすることができ、次のいずれか
public abstract class EmailDecorator implements MailMessage {
protected MailMessage email;
...
// delegate all implemented methods to email
...
}
public class AlertEmailDecorator extends EmailDecorator {
public void setSubject(String subject) {
email.setSubject("[Alert]" + subject);
}
}
または私はちょうど「[警告]を追加委任することができます"SimpleMailMessageFactoryの文字列。
私には何がありますか?問題は私があまりにも思慮深く先を見越しているかもしれないと思うが、私は完璧なデザインが欲しい。
JavaMail APIが私たちのメッセージを飾るのにどのように役立つか。私は電子メールメッセージをフォーマットするためにFreemarkerのテンプレートでそれを使用したことを知っています。そして、私はこの質問がそれに関するものだと思います。さらに、オリジナルのポスターは、とにかく同じJavaMail APIを使用すると考えています。ネガティブキャストはありません。 –