Первым делом из подопытного экземпляра надо выделить код, отвечающий за работу с данными. Те. сделать разделение на слои отображения и работы с данными. Это стандартный подход, который в будущем позволит уберечь наши нервы, а в коммерческих продуктах - сократить расходы, т.к. разработку каждого слоя можно вести отдельно.
Если внимательно посмотреть, то структура mail ограничивает длину сообщения в 255 символов. Так же она завязывается на самописный контейнер и предполагает использование только в двухсвязном списке, который нужен для работы скроллинга. От этого всего необходимо избавиться!
Создадим класс, который будет описывать экземпляр одного письма и больше ничего!
Если внимательно посмотреть, то структура mail ограничивает длину сообщения в 255 символов. Так же она завязывается на самописный контейнер и предполагает использование только в двухсвязном списке, который нужен для работы скроллинга. От этого всего необходимо избавиться!
Создадим класс, который будет описывать экземпляр одного письма и больше ничего!
// Mail.h
class Mail
{
string Destination;
string Sender;
string Title;
string Subj;
public:
Mail(void); // Пустой конструктор для тестов
Mail(string Destination, string Sender, string Title, string Subj);
~Mail(void) {}
string getDestination() {return Destination;}
string getSender() {return Sender;}
string getTitle() {return Title;}
string getSubj() {return Subj;}
};
//Mail.cpp
#include "Mail.h"
Mail::Mail()
{
this->Destination = "Destination";
this->Sender = "Sender";
this->Title = "Title";
this->Subj = "Subj\n\r more text \n\r \n\r sign";
}
Mail::Mail(string Destination, string Sender, string Title, string Subj)
{
this->Destination = Destination;
this->Sender = Sender;
this->Title = Title;
this->Subj = Subj;
}
Итак, у нас есть отдельный класс, который отвечает за письмо, при этом, если, вдруг, адресатов станет 2 и более, то изменения коснутся только этот класс, т.к. он возвращает строку, а значит он же будет заниматься обработкой string Destination[];. Так же в этом случае надо будет добавить метод, возвращающий массив, если это потребуется в прикладном коде.
Комментариев нет:
Отправить комментарий