mak_ufo
@mak_ufo

Как убрать дублирующий код?

Всем привет. Если коротко, то есть два класса: Animation2D и Animation3D. Они очень похожи. Извиняюсь за простыню кода.
Класс Animation2D
5a662a2c57dce036635364.png
Класс Animation3D
5a662a33ac2e4402593297.png

У них очень много одинаковых моментов. Как лучше исправить это?
Ссылки на исходники:
Animation2D
Animation3D
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
ну.. в принципе можно расширения с дженериком нарисовать

на первый взгляд (не сверяю код, именно на глазок) мне кажется это было бы даже уместнее - если методов всего три, городить иерархию классов явно не стоит

ps и уж точно не стоит, когда они совпадают до символа

совет - если это дочерние классы от какого то необходимого "бай-дизайн-среды-исполнения" (как Form к примеру), и если вы не переопределяете обязательные виртуальные методы, то есть код где вызываются дополнительные методы полностью вами контролируется - расширения позволяют писать более чистый и читаемый код

в смысле создается экземпляр базового типа, где надо, через точку применяем расширения как родные
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@kzoper
Создать класс Animation перенести туда похожий функционал. Унаследовать 2d\3d от этого класса.
Ответ написан
Комментировать
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Inheritance - C# Programming Guide
https://msdn.microsoft.com/en-us/library/ms173149(...

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

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

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