Для моего класса программирования по разработке программного обеспечения мы должны были создать программу типа «Менеджер каналов» для каналов 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;
};
Теперь мне это кажется глупым. Я, честно говоря, не могу поверить, что меня понизили, когда это делает то же самое, что мое делает с гораздо большими накладными расходами.
Это напоминает мне о том, как в C # люди всегда делают это:
public class Example
{
private int _myint;
public int MyInt
{
get
{
return this._myint;
}
set
{
this._myint = value;
}
}
}
Я имею в виду, что я GET зачем они это делают, может позже они захотят проверить данные в установщике или увеличить их в получателе. Но почему вы, люди, просто НЕ ДЕЛАЕТЕ ЭТУ ДО такой ситуации?
public class Example
{
public int MyInt;
}
Извините, это что-то вроде разглагольствования, и на самом деле это не вопрос, но избыточность сводит меня с ума. Почему добытчики и сеттеры так любимы, когда они не нужны?