JAVA → Несколько слов об использовании перечислений в изменяющейся среде
Данный пост предлагает решение проблем с использованием перечислений при изменении состава констант или наличия дублирования кода при их использовании. В остальных случаях применение озвученного ниже подхода, как правило, нецелесообразно.
JavaScript → Перегрузка функций в JS
Как известно, в Javascript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
- // getRectangleArea(x1, y1, x2, y2) или
- // getRectangleArea(width, height)
- function getRectangleArea(x1, y1, x2, y2) {
- if(arguments.length==2) return x1*y1;
- return (x2-x1)*(y2-y1);
- }
* This source code was highlighted with Source Code Highlighter.Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
JAVA → Задумайся о полиморфизме
Захотелось поделиться с вами одной интересной задачкой на java.
Коллеги по работе уже устроили holywar на эту тему.:-D
Коллеги по работе уже устроили holywar на эту тему.:-D
PHP → Что такое полиморфизм на самом деле. В PHP он тоже существует.
Написать этот пост побудила недавняя статья о полиморфизме. Она вызвала много споров, но знающие люди понимают, что автор написал скорее о наследовании и о переопределении методов, чем о полиморфизме. Не буду говорить ни хорошее ни плохое о той статье, а просто расскажу, что такое полиморфизм на самом деле. Дабы начинающие php-программисты не остались в заблуждении.
PHP → Полиморфизм для начинающих
Полиморфизм — одна из трех основных парадигм ООП. Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Для тех, кто не особо сведущ в ООП, это, наверно, звучит сложно. Поэтому рассмотрим применение полиморфизма на примере.