Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2012, 11:34
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 822

ООП в javascript. Алгоритмы построения приложений
Уже очень долго изучаю объектно-ориентированную методологию в построении приложений.
Понимаю плюсы от такого подхода и уже изучил не мало всяких статей на эту тему.
Но применить практически свои знания не получается.
В тех примерах, которые видел речь идет о примитивных задачах (кролик бежит, кролика накормили..), но на практике получается так, что помимо "кролика" есть еще много не взаимосвязанных сущностей(


У меня есть готовое рабочее приложение. Его можно разделить на 3 части:
1) Функции отвечающие за drag-n-drop.
2) Функции на события нажатия кнопок
3) Функции, работающие с Storage.

Само приложение простенькое:
Пользователь перемещает элементы(1) и сохраняет текущие значения в Storage(3). Работает с текущими сохраненными данными(2).
Как это сделать единым целым я понять не могу(

Вот к примеру - взять jQuery. Там "кролик" - это элемент, jQuery манипулирует им. Все просто.
Но что взять за основу в моем приложении? Или основ должно быть несколько, которые взаимодействуют между собой?

Буду рад любым ссылкам и советам!
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2012, 13:35
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,589

Сообщение от dmitry111
Вот к примеру - взять jQuery. Там "кролик" - это элемент
с чего это? кролик там джиквери , а элемент свойство кролика
function a(data){
this.data=data;
.....
}
a.prototype.b=function(data){ действия над this.data..... return this;}
a.prototype.c=function(data){действия над this.data..... return this;}
a.prototype.d=function(data){действия над this.data..... return this;}
a.prototype.я=function(data){действия над this.data..... return какоето значение если метод должен чегото вернуть конкретное..}

$=new a('elem');
$.d(data1).c(data2).....

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

"Ставка -> Карта -> Игра", как умнее сделать?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 13.11.2012, 14:35
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 822

dmitriymar,

ага... я что-то ступил..
Ответить с цитированием
  #5 (permalink)  
Старый 13.11.2012, 15:17
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

ООП это ответ на высокую сложность приложений.
Вы неувидите потребности в ООП работая над jQuery плагином.

Чтобы появилась необходимость решите такую задачу.
Сделайте 3 плагина для отображения содержимого тега TABLE
1) GRID'ом,
2) плиткой
3) списком UL/LI

Надо быть слепым чтобы не заметить уйму общих методов для всех 3х плагинов.
Вот тут и появляется необходимость в ООП.

определите все общие методы, и вынесите их в отдельный класс.
напишите три плагина наследующих от базового класса, общие методы.

Ещё раз повторю работая над одним плагином, необходимость в ооп возникнет едвали. Она чувствуется в крупных формах, вроде приложений из десятков компонентов, или комплексе/наборе Плагинов

UPD в вашем примере невижу необходимости в наследовании и полиморфизме.
Инкапсуляция, и абстракция - да. Тоесть я непонимаю зачем вам ООП, что в базовый класс выносить собрались ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

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

Сообщение от DjDiablo
UPD в вашем примере невижу необходимости в наследовании и полиморфизме.
Инкапсуляция, и абстракция - да. Тоесть я непонимаю зачем вам ООП, что в базовый класс выносить собрались ?
инкапсуляция и абстракция уже есть ООП
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #7 (permalink)  
Старый 13.11.2012, 15:48
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
nt,z yt exbkb ,kjrc[tve hbcjdfnm b ghj'rnbhjdfnm fh[bntrnehe ghbkj;tybz&
Перевод: тебя не учили рисовать архитектуру приложения ?

Масимальномаксимальный уже не тот, с годами его становится понимать всё сложнее
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #8 (permalink)  
Старый 13.11.2012, 15:50
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от DjDiablo
Масимальномаксимальный уже не тот, с годами его становится понимать всё сложнее
годы берут свое
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #9 (permalink)  
Старый 13.11.2012, 16:35
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 822

iMaxmaxmaximus,
10000110001 10001001011 10000111011 10000111110
10000110001 10001001011
10000111010 10000111110 10000111100 10001000011
10001000011 10001000111 10000111000 10001000010 10001001100
)
Ответить с цитированием
  #10 (permalink)  
Старый 13.11.2012, 17:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

имхо, лучше сейчас начинать учить функциональщину, пока императивщина и ООП не проели мозг до конца.

да и сейчас всё чаще вижу (на том же хабре) статьи про функциональное программирование.

я пока начал вникать (вникаю на JS, не на хаскеле), это очень трудно, но это совершенно другой мир - более логичный и простой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архитектура javascript приложений amigo* Общие вопросы Javascript 19 12.03.2014 11:51
ООП в javascript iostream21 Общие вопросы Javascript 11 11.07.2012 23:16
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 18:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 19:34
Hivext Platforma - Платформа для JavaScript приложений Ruslan Ваши сайты и скрипты 1 23.01.2010 13:33