Очень хочется все элементы снеговика поместить в один массив. Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков... Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив! После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом. А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
Дата отправки отчёта:
6 августа 2018 г.
Задание выполнено: за
3 час. 53 мин.
Чему научился:
Сделал всё по списку. Метод Draw(Shape shape) попробовал реализовать тремя разными способами и все удачно заработали. Первый реализовал через проверки as и is. Пример: if (shape is Circle) Draw(shape as Circle); ... Второй сделал через функцию obj.Equals(). Пример: if (shape.GetType().Equals(typeof(Circle))) Draw((Circle)shape); ... А третий попробовал, как мне кажется, не очень хорошим способом через switch() case, приводя тип объекта к строковому виду и сравнивая со строкой пути к классу. Пример: switch(shape.GetType().ToString()) { case "Geometry.Circle": Draw((Circle)shape); break; ... Ну, вроде тоже заработал. И мне кажется есть еще много способов.
Прочитал отчет и у меня четко сложилось мнение, что пора в курс внедрить такой паттерн проектирования, как фабрика. Еще на ум другой пришел паттерн проектирования как стратегия. Сделать интерфейс IDrawable с методом draw и все объекты имеет этот интерфейс. Что-то мне подсказывает, что этих if с типами фигур быть не должно. Хотя могу ошибаться - давненько я этих снеговиков рисовал.
Отчёт оценивали: 6452. Кирилл Шмойлов+117606. Виктор+119525. Александр Балбашов03922. Александр+117947. Dmitry Sinitsin+19014. Николай Денисов+116218. Дмитрий+110895. Danil42Russia+11. Евгений Волосатов+110494. Алексей В.+13747. Сергей+1791. Валерий Жданов+118131. Александр+18822. Alex+111019. Trira+18877. gorynych+1459. Сергей Сергеевич+17645. Александр Львович+117255. Слава+17119. Новопашин Владимир+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.