Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2015, 22:59
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Важно: ООП ООП и еще раз ООП
Ящетаю, на этом форуме недостаточно внимания уделяется наиболее сильной стороне жаваскрипта -- ООП. Решил попытаться восполнить этот недостаток.

Предлагаю постить тут задачи по ООП и решения. Можно решение выложить сразу, дабы потом кто-нибудь попытался его улучшить, а можно, типа, заинтриговать, выложить только задание, пусть другие ищут решения. Можно выкладывать, для сравнения, решения на других языках.

Основное условие -- чтобы задача не предполагала знания каких-либо специализированных вещей. Она должна быть заточена, преимущественно, на реализацию логики, объектной системы, взаимодействие между компонентами логики приложения, мб, паттерны проектирования и тп.

Для затравки предлагаю банальщину -- классическую реализацию банковского аккаунта. Дальше будем прикручивать расширения и фичи к ней. Но можете предложить и что-то свое.

ЗЫ Очень надеюсь что тема взлетит. Убожество тем которые в последнее время тут, преимущественно, фигурируют, в стиле "как скрыть див по ай ди а потом его показать..." вгоняют в глубокий сон, сцука. Задвиньте уже, наконец, что-то интересное.

Последний раз редактировалось theKingOfJava, 18.04.2015 в 01:30.
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2015, 02:36
Профессор
Отправить личное сообщение для alex.vv Посмотреть профиль Найти все сообщения от alex.vv
 
Регистрация: 15.04.2014
Сообщений: 176

Цитата:
Решил попытаться восполнить этот недостаток.
Извини, но не увидел, в каком месте твоего сообщения ты "восполняешь" этот самый недостаток. Напиши реализацию, предложи варианты. А так - вилами по воде.

Цитата:
Для затравки предлагаю банальщину -- классическую реализацию банковского аккаунта.
И... зачем? (и где реализация?)
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2015, 03:02
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Сообщение от alex.vv
и где реализация?
Все ждал, что кто нибудь проснется.

Ладно, вот простейшая реализация:
Account={
 balance: 0,
 create: function(){return Object.create(this)},
 withdraw: function(amount){if((this.balance-amount)<0) return console.log("out of limit!"); this.balance-=amount},
 deposit: function(amount){this.balance+=amount},
 check: function(){console.log(this.balance)}
}

////////example//////////////////

account=Account.create()
with(account){
 deposit(100)  
 check()       //>>>> 100
 withdraw(50)  
 check()       //>>>> 50
 withdraw(70)  //>>>> out of limit!
 check()       //>>>> 50
}
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2015, 12:38
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Цитата:
наиболее сильной стороне жаваскрипта -- ООП
Эмм.тут не соглашусь вообще. JS - это чистое ООП. Не уделяют ему внимание, только те кто только начал изучать JS. Остальные просто не могут без него обойтись.
Я когда пишу приложение - у меня есть один класс материнка (app) при его создании он создает кучу других классов, которые устанавливают свои события(работа с каталогами, деревьям, всплывающими окнами и т.д.) и во все эти классы он сам себя передает. В результат из любого места кода можно получить полный доступ к любому элементу, не используя глобальную область видимости, достаточно написать this.app....и т.д.
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2015, 23:06
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
В результат из любого места кода можно получить полный доступ к любому элементу, не используя глобальную область видимости, достаточно написать this.app...
Чем это принципиально отличается от глобальной области видимости?
Ответить с цитированием
  #6 (permalink)  
Старый 09.10.2015, 22:31
Профессор
Отправить личное сообщение для alex.vv Посмотреть профиль Найти все сообщения от alex.vv
 
Регистрация: 15.04.2014
Сообщений: 176

Сообщение от vasa_c Посмотреть сообщение
Чем это принципиально отличается от глобальной области видимости?
Думаю тем, что можно построить именованную иерархию и управлять вложенными объектами через родительский объект, т.е. он будет чем-то типа контроллера. Обращение через this.app.something кстати напоминает систему пакетов в Java.
Но конечно проблему ограничения доступа это не решает, скорее решает конфликты имен и упрощает структуру приложения.

Последний раз редактировалось alex.vv, 09.10.2015 в 22:36.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще раз про очистку массива в js(интересный случай) OlegUP Общие вопросы Javascript 32 12.02.2015 14:54
Как вставить картинку на страницу поверх ее.. Вадим_СС Javascript под браузер 2 23.04.2012 08:45
Добовление формы еще Kuklavod jQuery 2 03.11.2011 15:12
Еще раз о перелистывании digital_sword jQuery 14 27.05.2010 22:20
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37