Я не умею ООП. Допустим я пишу калькулятор на JS, какие тут объекты надо делать?
Я вот как думаю, поправьте если не правильно, весь калькулятор это и есть объект. А отдельные функции (сложение, умножение и т.д.) это методы этого объекта.
Т.е. если у меня один калькулятор на странице - делать его объектом бессмысленно, теряется вся суть ООП. А если у меня несколько калькуляторов на странице (например есть кнопочка "Добавить калькулятор", ну чтобы параллельные расчеты вести) тогда мне будет очень удобно использовать ООП. Второй и последующие калькуляторы на странице просто будут созданы из первого калькулятора, унаследовав все его методы. PS Хотя сейчас подумал, можно и без объектов написать, просто все калькуляторы будут использовать одни и те же функции. Нет, не умею я думать в ООП. Мозги у меня наверно под функции заточены. PPS А ну да, там же ещё свойства есть. Допустим такая штука как М+ на калькуляторах запоминает число. Если я использую ООП то запоминание будет логичным - в том же объекте (у разных калькуляторов разные M+). А если на функциях делать, тогда не очень очевидно где мне это запоминать. Да, наверно в этом преимущество ООП. Т.е. какая то логичность всей конструкции получается, без этих комментариев к куче функций о том, что там где сохраняется. Плюс можно будет на разных калькуляторах какие нибудь режимы переключать т.е. изменяя конкретный объект. На функциях это тоже можно сделать с какой нибудь кучей флагов... А где эти флаги (свойства) сохранять? Да, наверно объекты логичнее. |
Цитата:
1. Потому, что в любой момент у тебя может стать их несколько. 2. Проще писать сразу ООП 3. Потому, что калькулятор - это сущность/объект |
nerv_,
Ну слушайте, оформить простые функции как методы одного большого объекта это же одна минута. Я же про другое спрашиваю, зачем эта штука ООП вообще нужна. Я вот из-за такого подхода "всё делать на ООП" может быть и запутался. Порой смотрю и думаю: а тут то это зачем? |
Цитата:
|
nerv_,
Ну а в целом пример с калькулятором я правильно понимаю? Или туплю? |
Цитата:
|
Momon,
у тебя должно быть что-то типа такого: var calc = new Calc(); calc.appendTo('#myDiv'); //... calc.clear(); //Очищаем поле ввода calc.addValue(3); //Добавляем значение в поле //ну и т.д. Ну ты понял. :) |
Часовой пояс GMT +3, время: 17:35. |