Каковы эффективные методы совместного использования кода / повторного использования кода или другие хитрости, которые следует знать при разработке стандартного стандартного настольного приложения C ++ для Windows 7 (и более ранних версий) с целью обеспечения параллельной Windows 8 (и позже) версия приложения (универсальный C ++ и / или Windows Store-friendly, если это не одно и то же) в ближайшем будущем?
Основная проблема с приложениями Windows для настольных компьютеров (с использованием Win32, .net и т. Д. В Win8 и Win7) по сравнению с приложениями для магазина Windows (на основе WinRT / XAML, только Win8) заключается в другом подходе к пользовательскому интерфейсу. Одним из решений будет выделение функций, связанных с пользовательским интерфейсом.
Статья Приложения для магазина Windows, использующие C ++ и XAML рекомендует эту архитектуру:
По возможности используйте C ++ 11 и стандартные библиотеки C ++ (например,
STL и CRT) для вашего основная логика приложения и синтаксис C ++ / CX только в
граница, где вы взаимодействовать с Среда выполнения Windows.
Если вы последуете этой рекомендации, вы сможете разделить много кода между ними (бизнес / бэк-офис), а также с общими функциями утилит.
Один из способов добиться этого:
Используйте идиому pimpl («указатель на реализацию»), чтобы скрыть
реализация, минимизация связи и отдельные интерфейсы. …
детали реализации .cpp … умный указатель на это
реализация в закрытом разделе объявления класса в
.час.
Таким образом, все объекты, специфичные для вашей платформы, будут перегруппированы в объект реализации, и ваш общий код может остаться независимым от платформы.