13.11.2012, 13:34
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
ООП в javascript. Алгоритмы построения приложений
Уже очень долго изучаю объектно-ориентированную методологию в построении приложений.
Понимаю плюсы от такого подхода и уже изучил не мало всяких статей на эту тему.
Но применить практически свои знания не получается.
В тех примерах, которые видел речь идет о примитивных задачах (кролик бежит, кролика накормили..), но на практике получается так, что помимо "кролика" есть еще много не взаимосвязанных сущностей(
У меня есть готовое рабочее приложение. Его можно разделить на 3 части:
1) Функции отвечающие за drag-n-drop.
2) Функции на события нажатия кнопок
3) Функции, работающие с Storage.
Само приложение простенькое:
Пользователь перемещает элементы(1) и сохраняет текущие значения в Storage(3). Работает с текущими сохраненными данными(2).
Как это сделать единым целым я понять не могу(
Вот к примеру - взять jQuery. Там "кролик" - это элемент, jQuery манипулирует им. Все просто.
Но что взять за основу в моем приложении? Или основ должно быть несколько, которые взаимодействуют между собой?
Буду рад любым ссылкам и советам!
|
|
13.11.2012, 15:35
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от 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 в 15:51.
|
|
13.11.2012, 15:43
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
13.11.2012, 16:35
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
dmitriymar,
ага... я что-то ступил..
|
|
13.11.2012, 17:17
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
ООП это ответ на высокую сложность приложений.
Вы неувидите потребности в ООП работая над jQuery плагином.
Чтобы появилась необходимость решите такую задачу.
Сделайте 3 плагина для отображения содержимого тега TABLE
1) GRID'ом,
2) плиткой
3) списком UL/LI
Надо быть слепым чтобы не заметить уйму общих методов для всех 3х плагинов.
Вот тут и появляется необходимость в ООП.
определите все общие методы, и вынесите их в отдельный класс.
напишите три плагина наследующих от базового класса, общие методы.
Ещё раз повторю работая над одним плагином, необходимость в ооп возникнет едвали. Она чувствуется в крупных формах, вроде приложений из десятков компонентов, или комплексе/наборе Плагинов
UPD в вашем примере невижу необходимости в наследовании и полиморфизме.
Инкапсуляция, и абстракция - да. Тоесть я непонимаю зачем вам ООП, что в базовый класс выносить собрались ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 13.11.2012 в 17:42.
|
|
13.11.2012, 17:42
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от DjDiablo
|
UPD в вашем примере невижу необходимости в наследовании и полиморфизме.
Инкапсуляция, и абстракция - да. Тоесть я непонимаю зачем вам ООП, что в базовый класс выносить собрались ?
|
инкапсуляция и абстракция уже есть ООП
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
13.11.2012, 17:48
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
nt,z yt exbkb ,kjrc[tve hbcjdfnm b ghj'rnbhjdfnm fh[bntrnehe ghbkj;tybz&
|
Перевод: тебя не учили рисовать архитектуру приложения ?
Масимальномаксимальный уже не тот, с годами его становится понимать всё сложнее
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
13.11.2012, 17:50
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от DjDiablo
|
Масимальномаксимальный уже не тот, с годами его становится понимать всё сложнее
|
годы берут свое
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
13.11.2012, 18:35
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
iMaxmaxmaximus,
10000110001 10001001011 10000111011 10000111110
10000110001 10001001011
10000111010 10000111110 10000111100 10001000011
10001000011 10001000111 10000111000 10001000010 10001001100
)
|
|
13.11.2012, 19:17
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
имхо, лучше сейчас начинать учить функциональщину, пока императивщина и ООП не проели мозг до конца.
да и сейчас всё чаще вижу (на том же хабре) статьи про функциональное программирование.
я пока начал вникать (вникаю на JS, не на хаскеле), это очень трудно, но это совершенно другой мир - более логичный и простой.
|
|
|
|