Я только начинал новый проект кодирования. Я могу опередить себя, но я застрял. Я хотел реализовать абстрактную фабрику для графического интерфейса пользователя, похожую на пример на Wikipedia. Однако у разных систем есть свои собственные параметры для создания окон. В настоящее время я пришел со следующими решениями моей дилеммы:Как реализовать абстрактную фабрику для оконных систем
- Создать тип, который изменяется в зависимости от директив компилятора
- Не использовать директивы компилятора и просто положить все, что в таком типе, который содержит все возможные данные член
- Создайте полиморфную иерархию и используйте динамическое кастинг внутри каждой оконной функции
- Используйте какой-то промежуточный синглтон, который содержит информацию. Это похоже на esp. бесполезно и, вероятно, также будет включать в себя кастинг.
- Используйте другой шаблон, например, строитель.
Наша цель - создать интерфейсы высокого уровня, которые являются однородными, так что создание окна и т. Д. Одинаково для всех платформ.
Я стесняюсь делать # 5 просто потому, что кажется, что это будет достаточно распространенной проблемой, что уже должно быть решение. Это всего лишь игрушка, так что это больше об учебе, чем о создании практического приложения. Я знаю, что могу использовать существующие базы кода, но это не достигло моей реальной цели.
Заранее спасибо.
'Однако у разных систем есть свои собственные параметры для создания окон.« Было бы здорово, если бы вы могли привести конкретный пример этого. – Fuhrmanator