Стратегия позволяет, чтобы допускающий повторное использование алгоритм использовался больше чем в одном месте. Если у Вас есть алгоритм, который может быть предоставлен Вашим потребителем и может использоваться в нескольких местах, это - хорошее место для Стратегии (сортирующий алгоритмы, предикаты, компараторы... являются хорошими примерами этого).
Шаблонный метод конкретно предназначен для случаев, где Вы хотите, чтобы люди были в состоянии наследоваться Вашему классу и хотеть, чтобы они были в состоянии переопределить Вашу реализацию управляемым способом (в основном препятствующий тому, чтобы они заменять весь Ваш инфраструктура и предложение они определенный точка расширения, рискующий проблема, потому что они не назвали базовый метод или назвали его не в то время).
Они могут быть подобными, и они могут служить тому же виду цели в зависимости от того, что Вы на самом деле делаете. Как со всеми шаблонами разработки, трудно ответить на такой вопрос, потому что нет действительно категорического ответа. На самом деле легче решить в контексте...
Придумал решение:
Используйте объявление Apache AddType
, чтобы добавить пользовательский тип MIME, а затем используйте этот тип MIME в AddOutputFilterByType
объявление.
Например, для шрифтов opentype и truetype:
Addtype font/opentype .otf
Addtype font/truetype .ttf
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css font/opentype font/truetype
Оба этих объявления требуют, чтобы их соответствующие модули были активными: mod_mime
и mod_deflate
. И для наилучшей практики объявление AddType
должно быть в файле mime.conf, а объявление AddOutputFilterByType
должно быть в файле deflate.conf. См. Файлы справки вашего конкретного дистрибутива для включения и настройки модулей Apache.