@Jaguar_sea

Как научиться создавать хорошие классы?

Я, как и все начинающие попытался пойти от простого к сложному. От создания консольного приложения выводящего какие то данные на экран, к классу который бы выдавал эти данные в удобной форме и при этом выставлял бы наружу только нужный пользователю метод.
Мое консольное приложение, которое парсит xml файл с смс сообщениями от банка и выводит на экран остаток средств на определенную дату выглядит вот так:
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load("sms.xml");   
XmlElement xRoot = XmlDoc.DocumentElement;
foreach (XmlNode xNode in xRoot)
{
     if (xNode.Attributes.Count > 0)
     {
            XmlNode attr = xNode.Attributes.GetNamedItem("address");
            if (attr.Value == "bank")
            {
                    // Методы GetDateFromDateField и GetBalanceFromBodyField, с помощью регулярных 
                    // выражений парсят исходные данные.
                   Console.Write(GetDateFromDateField(xNode.Attributes.GetNamedItem("date").Value) + " ");
                   Console.WriteLine(GetBalanceFromBodyField(xNode.Attributes.GetNamedItem("body").Value));
            }   
      }
}


Хотелось бы, чтобы класс на выходе предоставлял не изменяемую коллекцию. Помогите, пожалуйста, определить интерфейс такого класса.
Конечно интересен сам принцип создания классов, т.е. пошаговый ход мыслей. Если поделитесь ссылкой на материал описывающий такой подход буду очень благодарен.
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
Класс, это не функция, чтобы предоставлять что-то на выходе.

Класс - это набор данных и методов, которые работают с этими данными.

От этого определения и отталкивайтесь - что в классе должны быть нужные вам данные, и работать с этими данными нужно при помощи методов, объявленных внутри этого класса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы