2013-09-14 1 views
0

Я пишу программу, где кто-то может настроить электронную почту (To, CC, Subject, Body и т. Д.). Затем они могут настраивать различные триггеры, которые будут посылать электронное письмо, используя установленную им настройку.Модель домена - моделирование класса шаблона и класса экземпляра?

Как это будет смоделировано? Будет ли у меня класс EmailTemplate, который сохранит настройку электронной почты, а затем и EmailMessage класс, который будет представлять собой фактический экземпляр отправленного сообщения?

Чтобы сделать это более применимым для других, кто может найти этот вопрос, как вы моделируете класс, который используется для создания экземпляра другого класса (правильно ли я это слово?)?

Есть ли лучший способ? Я слишком усложняю это?

ответ

1

Если сообщение никогда не меняется, достаточно заполнить EmailTemplate. Если пользователь может изменить фактическую электронную почту, вам понадобится MailMessage. Это очень простой сценарий, по крайней мере, с подробностями, которые вы нам рассказали.

TDD также может помочь здесь, написать некоторые ожидания в виде тестов и посмотреть, к чему это приведет.

+0

Ну, пользователь может изменить сообщение в любое время ... но я думаю, мне нужно решить, есть ли смысл сохранять историю сообщений – richard

0

Помимо того, что @MikeSW уже сказал, вы, кажется, пытаетесь сделать BDUF. Сначала попробуйте простую версию - тогда вам будет легче представить, как вы хотите, чтобы ваши клиенты использовали его, а затем редизайн и рефакторинг с помощью небольших шагов (что делает TDD применимым, как отмечено MikeSW).

Что касается вашего вопроса о классе, который создает экземпляры другого класса - вы имеете в виду Factory pattern. И на самом деле это кажется хорошим способом для использования API электронной почты. Рассмотрим этот проект: http://www.limilabs.com/blog/send-email-with-attachment - он разработан таким образом («строитель» - это прозвище «фабрика»).

0

Похоже, вы можете использовать любые EmailMessage в качестве шаблона, скопировать его в новый EmailMessage, а затем разрешить пользователю изменять его по мере необходимости.

Смежные вопросы