Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2015, 13:51
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

Я не умею ООП. Допустим я пишу калькулятор на JS, какие тут объекты надо делать?
Я вот как думаю, поправьте если не правильно, весь калькулятор это и есть объект. А отдельные функции (сложение, умножение и т.д.) это методы этого объекта.

Т.е. если у меня один калькулятор на странице - делать его объектом бессмысленно, теряется вся суть ООП.

А если у меня несколько калькуляторов на странице (например есть кнопочка "Добавить калькулятор", ну чтобы параллельные расчеты вести) тогда мне будет очень удобно использовать ООП. Второй и последующие калькуляторы на странице просто будут созданы из первого калькулятора, унаследовав все его методы.

PS Хотя сейчас подумал, можно и без объектов написать, просто все калькуляторы будут использовать одни и те же функции. Нет, не умею я думать в ООП. Мозги у меня наверно под функции заточены.

PPS А ну да, там же ещё свойства есть. Допустим такая штука как М+ на калькуляторах запоминает число. Если я использую ООП то запоминание будет логичным - в том же объекте (у разных калькуляторов разные M+). А если на функциях делать, тогда не очень очевидно где мне это запоминать. Да, наверно в этом преимущество ООП. Т.е. какая то логичность всей конструкции получается, без этих комментариев к куче функций о том, что там где сохраняется. Плюс можно будет на разных калькуляторах какие нибудь режимы переключать т.е. изменяя конкретный объект. На функциях это тоже можно сделать с какой нибудь кучей флагов... А где эти флаги (свойства) сохранять? Да, наверно объекты логичнее.

Последний раз редактировалось Momon, 02.05.2015 в 14:25.
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2015, 14:01
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Momon
Т.е. если у меня один калькулятор на странице - делать его объектом бессмысленно, теряется вся суть ООП
неправильно)
1. Потому, что в любой момент у тебя может стать их несколько.
2. Проще писать сразу ООП
3. Потому, что калькулятор - это сущность/объект
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2015, 14:05
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

nerv_,
Ну слушайте, оформить простые функции как методы одного большого объекта это же одна минута. Я же про другое спрашиваю, зачем эта штука ООП вообще нужна. Я вот из-за такого подхода "всё делать на ООП" может быть и запутался. Порой смотрю и думаю: а тут то это зачем?

Последний раз редактировалось Momon, 02.05.2015 в 14:12.
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2015, 14:12
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Momon
Я же про другое спрашиваю, зачем эта штука ООП вообще нужна.
Для управления сложностью приложения. Т.е., чтобы писать меньше, проще и т.п.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 02.05.2015, 14:14
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

nerv_,
Ну а в целом пример с калькулятором я правильно понимаю? Или туплю?
Ответить с цитированием
  #6 (permalink)  
Старый 02.05.2015, 14:20
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Momon
Ну а в целом пример с калькулятором я правильно понимаю?
скорее да, чем нет. Пиши пока так, не буду забивать тебе голову.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #7 (permalink)  
Старый 03.05.2015, 10:10
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Momon,

у тебя должно быть что-то типа такого:

var calc = new Calc();
calc.appendTo('#myDiv');

//...
calc.clear(); //Очищаем поле ввода
calc.addValue(3); //Добавляем значение в поле

//ну и т.д.


Ну ты понял.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск