Я, как и все начинающие попытался пойти от простого к сложному. От создания консольного приложения выводящего какие то данные на экран, к классу который бы выдавал эти данные в удобной форме и при этом выставлял бы наружу только нужный пользователю метод.
Мое консольное приложение, которое парсит 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));
}
}
}
Хотелось бы, чтобы класс на выходе предоставлял не изменяемую коллекцию. Помогите, пожалуйста, определить интерфейс такого класса.
Конечно интересен сам принцип создания классов, т.е. пошаговый ход мыслей. Если поделитесь ссылкой на материал описывающий такой подход буду очень благодарен.