Может ли Python использовать шаблон проектирования фабричного метода?

Я сделал это на C, используя массив указателей на функции . Доступ к указателям осуществляется случайным образом, и они используются для вызова функции, на которую они указывают, которая запускает уникальный анимированный световой узор в светодиодной полосе WS2812B [с использованием библиотеки ADAFruit NeoPixel ]. Но я хочу сделать это с помощью ООП [ в первую очередь, потому что ООП упрощает разработку новой анимации]!

Я пробовал на C++ , но прошло несколько десятилетий, так что я уже заржавел. Что ставит меня в точку сопряжения: заново освоить C++ или использовать это как стимул, чтобы наконец выучить Python?

Вот почему. Вот что:

Поскольку это выполняется в среде MCU с ограниченным объемом памяти , я хочу, чтобы подпрограммы анимации занимали столько памяти, сколько им нужно, а затем, когда это было сделано, освобождали эту память. Итак, я хочу избежать чего-то вроде: создания нескольких объектов анимации и загрузки их в массив для случайной индексации. Это переполнит Heap / Stack суммой памяти, необходимой для ВСЕХ объектов анимации одновременно, что наложит большее ограничение на количество анимаций, которые могут существовать в MCU [тем более, что RAM обычно меньше, чем ROM / ВЫПУСКНОЙ ВЕЧЕР].

Нет, я хочу заполнить этот массив чем-то вроде указателей на функции "создания экземпляров", которые при вызове создают экземпляр ОДНОГО, выбранного объекта анимации. И затем, когда эта анимация закончится, выполняет «удаление» / стимулирует деструкторы / и т. Д. поэтому память точно очищается [т.е. без утечек памяти ].

Моя реализация на C++ пронизана утечками памяти [нет управления памятью в C++] - хотя, намного меньше, чем когда я начинал, так что я поправляюсь [небольшой кивок Монти ].

Итак ... продолжу ли я стремиться к восстановлению своего великолепия C++ [когда-то я был «экспертом»], или я откажусь от C++ и займусь Python? Единственный переломный момент: МОЖЕТ ЛИ PYTHON СДЕЛАТЬ РАБОТУ?

Хорошо, еще одним переломным моментом может быть моя любовь к Operator Overloading ;)

BTW: MCU, который я сейчас использую, - это SeeedStudio XIAO , который является быстрым и жестоким маленьким багом , поэтому, даже если Python немного медленнее, чем C++ [из-за дополнительных накладных расходов], не беспокойтесь [много?].

0 ответов

Другие вопросы по тегам