В «Агрегации простого слова» означает «Отношения».
Состав - это особый случай агрегации. Более конкретно, ограниченная агрегация называется композицией. Когда объект содержит другой объект, если содержащийся объект не может существовать без существования контейнерного объекта, тогда он называется композицией. Пример: класс содержит студентов. Студент не может существовать без класса. Существует композиция между классом и учениками.
Зачем использовать Aggregation
Повторное использование кода
Когда использование агрегирования
Повторное использование кода также наилучшим образом достигается путем агрегирования, когда нет Относительный корабль
Наследование
Наследование является родительским отношением к дочерним отношениям, связанным с отношением. RelationShip
Наследование в Java - это механизм, в котором один объект приобретает все свойства и поведение родительского объекта.
Использование наследования в Java 1 Повторное использование кода. 2 Добавить дополнительную функцию в дочернем классе, а также переопределение метода (поэтому может быть достигнут полиморфизм выполнения).
Существует обсуждение этого, включая ссылки на тестирование браузера и назад совместимость, в предложенном RFC 5987 , "Набор символов и Кодирование Языка для Протокола передачи гипертекста (HTTP) Полевые Параметры Заголовка".
RFC 2183 указывает, что такие заголовки должны быть закодированы согласно RFC 2184 , который был obsoleted RFC 2231 , покрытый черновым RFC выше.
Я обычно URL - кодирует (%xx) имена файлов, и это, кажется, работает во всех браузерах. Вы могли бы хотеть сделать некоторые тесты так или иначе.
Следующий документ, связанный от проект RFC , упомянутый Jim в его ответе дальнейшие адреса вопрос и определенно стоящий прямого примечания здесь:
Тесты для заголовка Довольного Расположения HTTP и RFC 2231/2047, Кодирующего
нет никакого совместимого способа закодировать имена неASCII в Content-Disposition
. Совместимость браузера является путаницей .
теоретически правильный синтаксис для использования UTF-8 в Content-Disposition
является очень странным: filename*=UTF-8''foo%c3%a4
(да, это - звездочка и никакие кавычки кроме пустой одинарной кавычки в середине)
Этот заголовок является kinda-not-quite-standard (, спецификация HTTP/1.1 подтверждает свое существование , но не требует, чтобы клиенты поддерживали его).
существует простая и очень устойчивая альтернатива: используют URL, который содержит имя файла, которое Вы хотите .
, Когда имя после того, как последняя наклонная черта является той, Вы хотите, Вам не нужны никакие дополнительные заголовки!
Этот прием работы:
/real_script.php/fake_filename.doc
И если Ваш сервер поддерживает перезапись URL (например, mod_rewrite
в Apache) тогда, можно полностью скрыть часть сценария.
Символы в URL должны быть в UTF-8, urlencoded байт байтом:
/mot%C3%B6rhead # motörhead
в asp.net mvc2 я использую что-то вроде этого:
return File(
tempFile
, "application/octet-stream"
, HttpUtility.UrlPathEncode(fileName)
);
Думаю, если вы не используете mvc (2), вы можете просто закодировать имя файла, используя
HttpUtility.UrlPathEncode(fileName)