Тема: Snakeskin
Показать сообщение отдельно
  #473 (permalink)  
Старый 08.02.2015, 10:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Конечно, такой приём по аналогии с классическими языками (от слова класс) называется "композицией". Самый удобный способ сделать это - это использовать директиву call.

{template foo(a, b)}
    {a + b}
{/}

{template bar()}
    {call foo(1, 2)} /// 3
{/}


Цитата:
Или только proto и apply?
proto - apply и block - callBlock ассоциированы с конкретным шаблоном и являются его методами, т.е. они участвуют при наследовании, а в примере выше у нас 2-а независимых шаблона.

Это уже вопросы архитектуры, лично я стараюсь отдавать предпочтение наследованию, т.к. в таком случае архитектура более управляемая и ясная, а композицию могу использовать, где она явно напрашивается.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 08.02.2015 в 12:09.
Ответить с цитированием