Если нужно часто сериализовать объекты различных классов в строку, то можно добавить следующий метод расширения. Этот способ сократит ваш код сериализации до obj.ToXml(). StringWriter пишет строку в UTF-16...
Интерфейсы. Изначально ООП обходилось без них. Позже в C++ была неудачная попытка использовать вместо них классы, которая, однако, привела к пониманию проблемы и открыла путь к её решению. Нужна была абстракция поведения вне классификации и интерфейсы воплотили её. Окружающие нас объекты дружно игнорируют SRP -- гвоздь, ведро, автомобиль помимо своего индивидуального поведения имеют и общее: их можно купить, у них есть положение и габариты и они ржавеют со временем. Для отражения общих черт не хватает иерархической классификации, при которой наследование поведения возможно лишь по одной линии...
Часто для решения задачи существует более одного пути. Предположим понадобилось вычислить eˣ через известный ряд: В выражение входит факториал и нам нужны его значения для разных n. Можно решить задачу в лоб, использовав рекурсию, цикл или таблицу (ведь значений, которые уместятся в int или long не много). Но у этих методов есть большой недостаток: n! быстро растет и мы исчерпаем возможности представления чисел до того, как достигнем желаемой точности. Но есть иной путь -- не считать факториал. Заметим,...
"Поиск не затягивает дело, а ошибки -- затягивают." (Им покоряется небо) Однажды перестали автоматически обрабатываться заказы. При ручной обработке было выявлено, что сумма заказа рассчитанная системой заказов отличалась от суммы заказа, рассчитанной в учетной системе на несколько копеек. Это касалось лишь тех заказов, число позиций в которых было больше одной. Причиной расхождения была ошибка в расчете величины новой комиссии. До этого, комиссионные сборы рассчитывались на каждую позицию в отдельности...
Наследование и полиморфизм две тесно связанные концепции для работы с абстракциями. Наследование определяет отношение "является" между абстракциями с разной степенью детализации, а полиморфизм определяет способы оперирования абстракциями. В программировании обычно выделяют три формы полиморфизма, которые различаются тем, что абстрагируется. Абстракция объектов через наследование. Все автомобили едут, все самолеты летают, а любой документ можно напечатать. В этом примере автомобиль, самолет или документ -- абстракция, определяющая общее поведение для реальных объектов...
9 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала