C # - Основной вопрос дизайна класса - PullRequest
2 голосов
/ 24 июля 2011

Я пишу приложение,

Основная цель приложения - это возможность быстро отправлять электронные письма, используя учетную запись Gmail (НЕ читать электронную почту, а просто отправлять).

Iиметь класс «GmailAccount», который создает объект SmtpClient в своем конструкторе, используя имя пользователя и пароль.У него также есть метод «Отправить», который принимает MailMessage, который собирается из моего пользовательского интерфейса и передается.

Проблема, с которой я столкнулся, заключается в том, что я также хотел бы опросить список контактов Gmail, чтобыЯ могу «автозаполнить», когда пользователь вводит адреса электронной почты.

Должен ли я разделить этот класс или сделать это также:

1) Загрузить список контактов клиента на диск

2) Есть метод нажатия клавиш в моих полях to / cc / bcc, который для каждого набранного символа опрашивает метод GmailAccount.FindContact (), чтобы увидеть, есть ли совпадение?

3) Если есть совпадение, передайте полный адрес.

Спасибо за помощь!

1 Ответ

2 голосов
/ 24 июля 2011

Все дело в том, что подходит вам и как работает ваше (целое) приложение.

Лично у меня были бы контакты в GmailAccount, потому что контакты являются частью учетной записи Gmail. Вы можете не соглашаться, и вы абсолютно правы в этом, потому что дизайн класса - это нечто субъективное.

Я видел много дизайнов классов, которые имеют одно свойство и имеют класс, в котором затем есть другой класс + одно поле. Автору этой программы может показаться полезным, но я бы лично не согласился с его дизайном. Дело в том, что мы оба правы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...