• В чём граница между библиотекой и фреймворком?

    @nocach
    По мне так фреймворк это некий каркас приложения. Более invasive, нежели простая библиотека. Взять, например, Spring MVC framework. Да, это набор библиотек, скомпилированного кода. Но, чтобы воспользоваться благами спринга, ваш код надо будет структурировать определенным образом (чтобы заработал Контроллер вы должны одеть его нужными аннотациями, из методов возвращать заданные фреймворком данные и т.д.)

    Библиотека же, это просто набор прикладных утилит решающих одну определенную задачу. Например, библиотека Log4j. Несет единственную функциональность в виде логирования. Ваш код остается всё тем же вашим кодом. Вам не надо строить свои классы определенным образом. Вам не надо возвращать специальные значения. Вам достаточно добавить поле logger, создать логер и логить. Функциональность изначального кода осталась без изменений. Прибавилась только фукция логирования.
    Ответ написан
    2 комментария
  • Как бы вы реализовали такую архитектуру в рамках PHP?

    @nocach
    Можно сделать что-то подобное:



    Подойдет, если изменения свойств карт затрагивают в основном только атрибуты (прибавить, отнять и т.д.)

    в таком случае $modifier->apply($card) будет напрямую менять значения карты (например прибавит +5 к урону) $mofidier->revert($card) опять таки напрямую возвращает значения на исходную точку (отнять -5 от урона).

    Плюс такого решения, что нет проблемы ромба. Если карты очень различаются набором атрибутов, то Modifier можно сделать по подобию паттерна Visitor.



    Правда, тут может настать проблема с процентными модифицированиями (карта +20% урона плюс картa +5 урона дадут неправильный результат), но это можно обойти модифицировав логику ModifiebleSupport.
    Ответ написан
    Комментировать
  • Android парсинг HTML?

    @nocach
    Для ваших целей можно использовать, например, htmlcleaner. Простенькая библиотека для дом-парсинга.
    Еще есть Html Parser, он довольно громоздкий, но зато поддерживает CSS селекторы.
    В плане скорости, конечно же лучше всего будет воспользоваться SAX xml парсером.
    Ответ написан
    Комментировать