Для моего класса программирования разработки программного обеспечения мы должны были создать программу типа "Feed Manager" для RSS-каналов. Вот как я обработал реализацию FeedItems.
Приятный и простой:
struct FeedItem {
string title;
string description;
string url;
}
Я получил обозначение для этого, "правильный" пример ответа выглядит следующим образом:
class FeedItem
{
public:
FeedItem(string title, string description, string url);
inline string getTitle() const { return this->title; }
inline string getDescription() const { return this->description; }
inline string getURL() const { return this->url; }
inline void setTitle(string title) { this->title = title; }
inline void setDescription(string description){ this->description = description; }
inline void setURL(string url) { this->url = url; }
private:
string title;
string description;
string url;
};
Теперь мне кажется, что это глупо. Я, честно говоря, не могу поверить, что меня пометили, когда это делает то же самое, что у меня с гораздо большими накладными расходами.
Это напоминает мне, как в С# люди всегда это делают:
public class Example
{
private int _myint;
public int MyInt
{
get
{
return this._myint;
}
set
{
this._myint = value;
}
}
}
Я имею в виду, что я ПОЛУЧАЮ, почему они это делают, возможно, позже они захотят проверить данные в сеттере или увеличить его в получателе. Но почему бы вам просто не сделать ЭТО, если эта ситуация возникнет?
public class Example
{
public int MyInt;
}
Извините, это своего рода разглагольствование, а не вопрос, но избыточность сводит меня с ума. Почему так любят геттеры и сеттеры, когда они не нужны?