Одна из причин заключается в том, что интерфейсы обеспечивают рост и расширяемость. Скажем, например, что у вас есть метод, который принимает объект в качестве параметра,
public void drink (coffee someDrink) {
}
Теперь, допустим, вы хотите использовать точно такой же метод, но передать объект hotTea. Ну, ты не можешь. Вы просто жестко запрограммировали этот метод, чтобы использовать только кофейные объекты. Может быть, это хорошо, может быть, это плохо. Недостатком вышесказанного является то, что он строго блокирует вас одним типом объекта, когда вы хотите передать все виды связанных объектов.
Используя интерфейс, скажем, IHotDrink,
интерфейс IHotDrink {}
и переписав вышеописанный метод для использования интерфейса вместо объекта,
public void drink (IHotDrink someDrink) {
}
Теперь вы можете передавать все объекты, которые реализуют интерфейс IHotDrink. Конечно, вы можете написать точно такой же метод, который делает то же самое с другим параметром объекта, но почему? Вы вдруг поддерживаете раздутый код.
Code Pad поддерживает множество языков программирования, является бесплатным и не требует регистрации.
Если вы можете писать алгоритмы на Javascript, используйте Project Bespin .
Bespin - это эксперимент Mozilla Labs, который предлагает открытую расширяемую веб-структуру для кода редактирование, направленное на повышение продуктивности разработчиков, обеспечение привлекательного взаимодействия с пользователем и содействие использованию открытых стандартов.
Онлайн-интерпретатор Ruby находится по адресу: http://tryruby.hobix.com/
В нем также есть довольно хорошее руководство, которое поможет вам изучить Ruby на ходу.
Этот ответ будет зависеть от языка. Для лучшего ответа подойдет javascript. Поскольку он уже работает в браузере, написание интерпретатора, который запускается в браузере, - это несложно. Просто введите в Google запрос "интерпретатор javascript", и вы получите множество результатов.
Существуют также веб-интерпретаторы для Python:
И для Ruby:
http: // tryruby. hobix.com/[12125 visible Пример для онлайн-интерпретатора Python:
Python 2.5.2 (r252:60911, May 29 2008, 09:50:36) [C] on sunos5
Type "help", "copyright", "credits", or "license" for more information.
>>> total=0
>>> for a in range(32,288):
... total = total + str(a).count('6')
...
>>> total
56
Здесь есть интерактивная «живая демонстрация» для языка LUA: http://www.lua.org/demo.html
Там целая куча эмуляторов BASIC!
http://www.vavasour.ca/jeff/level1/simulator.html
Отлично на мгновение
10 PRINT "HELLO"
20 GOTO 10
Теперь существует также ideone.com. Он поддерживает большое количество языков программирования, включая эзотерические.
Лучший онлайн-инструмент, который я нашел (кроме codepad), это http://jsfiddle.net/
Вы можете писать HTML, CSS и JavaScript для ваше приложение. Вы можете выбрать один из 10 фреймворков JavaScript (я рекомендую jQuery для простых тестов). А для проверки нужно всего лишь нажать кнопки Run. Позволяет онлайн-сохранение (подобно pastebin), что тоже хорошо.