Jump to content

Search the Community

Showing results for tags 'oop'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Development
    • HTML Coding
    • JavaScript
    • PHP
    • CMS
    • Database
    • Web Server
    • Web-site Development
    • Internet Marketing, SEO
  • Library
    • Tricks and solutions
    • Books
  • Commercial services
    • Freelance
    • Job
    • Goods and Services
  • Our Forum
    • Flame
    • Contests
    • Feedback and Ideas

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web site


Telegram


Signal


Viber


Skype


From


Interests

Found 4 results

  1. Помогите пожалуйста разобраться в вопросе организации кода в простейшей игре. и в результате скажите: 1. правильный первый вариант 2. правильный второй вариант 3. оба варианта правильные и используются в зависимости от ситуации 4. давно уже существует паттерн %patternname% и с успехом используется в такой ситуации Допустим есть 2D-ландшафт, над ним летит корабль игрока. Корабль может стрелять ракетами. Описываю первый вариант организации ООП-кода на js(в js контроллер и представление совмещены): инициализация игры начинается с создания spaceView, который в свою очередь инициализирует: ландшафт, корабль игрока PlayerShipView - корабль игрока. Он может стрельнуть ракетой(PlayerRocketView). То есть объект корабля связан с объектом ракеты Ракета может столкнуться с ландшафтом. То есть объект ракеты связан с объектом spaceView В результате: Имеем 3 связанных объекта, но каждый из них содержит только свою функциональность(это плюс). Но если в программе придётся что-нибудь менять(например отключить кораблю игрока возможность стрелять ракетами), то вносить правки придётся в разных местах программы(это минус). Есть несколько глобальных переменных(это минус) Описываю второй вариант организации ООП-кода на js(в js контроллер и представление совмещены): инициализация игры начинается с создания spaceView, который в свою очередь инициализирует: ландшафт, корабль игрока, ракеты(есть нажата кнопка "огонь") и вообще все остальные объекты Таким образом: Если например игрок нажимает "огонь", то инициализация ракеты происходит в spaceView, а PlayerShipView вообще ничего не знает об объекте ракеты(это плюс). Соответственно нет глобальных переменных(это плюс). Но в spaceView содержится куча логики(всей игры, в котрой кроме корабля игрока и ракеты существует очень много других объектов). Для наглядности я реализовал первый вариант здесь: https://github.com/zlodiak/space-1 В нём используются различные библиотечки типа backbone, underscore, но незнание их не мешает пониманию общей структуры программы Не бейте(ногами), я знаю что вопрос для телепатов
  2. ребята, помогите пожалуйста советом я сделал на backbone форму с валидацией: https://jsfiddle.net/9t1cwfrv/5/ .пока для простоты использовал только одно поле: github: https://github.com/zlodiak/shippingCalculator1 проблема в том, что в финальной версии калькулятора полей будет много. поэтому мне хотелось бы чтобы каждое представление наследовало от какого-нибудь общего родительского 'класса' методы: notValidMarkAdd(), validMarkAdd() иначе их придётся дублировать в каждом представлении как бы это реализовать?
  3. помогите пожалуйста разобраться с важным моментом. вопрос не привязываю к какому-либо языку потому что он очень общий допустим есть игра, написанная в ООП-стиле. основной объект game порождает объект level. далее level порождает кучу объектов танков, самолётиков, солдатиков и т.д. логично всё это организовать через наследование. это удобно потому что если солдатику понадобится какое-нибудь свойство из level или из game, то он его получит но можно обойтись без наследования. в этом случае придётся при создании объекта в конструктор передавать родительский объект. например объекту level понадобилось имя игрока: var Game = function() { this.username = 'petya' this.levelObj = new Level(this); }; var Level = function(gameObj) { this.gameObj = gameObj; this.method1(); }; Level.prototype = { method1: function() { console.log(this.gameObj.username); } } итак, существуют 2 способа организации кода: с использованием наследования(1) и без использования наследования(2) вопрос. это 2 равноценных способа? или второй способ это велосипед, который лучше не использовать чтобы не запутаться на определённом этапе? что вообще можно почитать на эту тему хотя бы на английском языке? именно по организации кода мне редко попадаются хорошие ресурсы
  4. помогите пожалуйста разобраться в в вопросе. привожу код на питоне, но сам язык здесь не важен потому что вопрос принципиальный. вот простыня кода, но чтобы ответить на вопрос смотреть его не обязательно: здесь происходит приблизительно следующее. я создаю класс с общим для всех потомков свойством. затем классы для потомков, затем для каждого класса потомка фабрику, затем класс синглтон, который создаёт потомков(о которых я сказал чуть выше) я поместил указатели на всех созданных потомков в переменную класса синглтона и в конце скрипты вывел всех потомков так: for boat in World.boats: print(boat) for raft in World.rafts: print(raft) в результате получил в консоль следующий вывод: (python3_env)kalinin@kalinin ~/python3/python3_files/boats4 $ python index.pyWorld: {'creared_at': 'Saturday, 05. December 2015 09:40AM'}worlds quantity: 1Boat: {'oars': 2, 'peoples': 7, 'speed': 60, 'color': 'blue', 'name': 'beda_0'}Boat: {'oars': 0, 'peoples': 10, 'speed': 100, 'color': 'yellow', 'name': 'beda_1'}Boat: {'oars': 0, 'peoples': 7, 'speed': 60, 'color': 'magenta', 'name': 'beda_2'}Boat: {'oars': 1, 'peoples': 9, 'speed': 60, 'color': 'red', 'name': 'beda_3'}Raft: {'sails': 1, 'peoples': 1, 'speed': 10, 'color': 'magenta', 'name': 'ra_0'}Raft: {'sails': 1, 'peoples': 2, 'speed': 30, 'color': 'blue', 'name': 'ra_1'}Raft: {'sails': 1, 'peoples': 2, 'speed': 10, 'color': 'magenta', 'name': 'ra_2'}Raft: {'sails': 0, 'peoples': 2, 'speed': 10, 'color': 'magenta', 'name': 'ra_3'}но совесть мне нашёптывает в одно ухо, что хорошо бы сделать по человечьи и, используя self, всех потомков поместить в переменную объекта, а не класса. однако дьявол в другое ухо нашёптывает, что если уж у меня синглтон по определению может существовать только в единственном экземпляре, то вполне допустимо оставить всё как есть(то есть использовать пременную класса) опытные программисты, что посоветуете использовать для хранения указателей? переменную класса или переменную объекта?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy