Тут вам нужен MVC читаем: ru.wikipedia.org/wiki/Model-View-Controller
Т.е. вам нужен класс для работы с шаблонами, который позволит переключить шаблон 1 вызовом.
А лучше возьмите уже готовый фреймворк, там уже все это есть
Есть механизм связки протоколов и клиентов, грубо говоря при ссылке ftp://.. запускается cuteFTP и т.д.
Если мне память не изменяет, можно добавить туда произвольный протокол и привязать к нем свою программу.
Попробуйте покопать в этом направление.