ДействиеСценарий / Говнокод #11345 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
package com.db.prds.modules.application.presenter.commands
{
  import ***.modules.application.presenter.ApplicationPresenter;
  import ***.modules.application.presenter.IApplicationPresenter;

  public class GoAboutCommand extends MainMenuCommand
  {

    public function GoAboutCommand (appPresenter : IApplicationPresenter)
    {
      super(appPresenter);
    }

    override public function execute () : void
    {
      this.appView.showModuleView(ApplicationPresenter(this.appPresenter).aboutPresenter.view);
      super.execute();
    }
  }
}

Вы все еще не пользуетесь ооп? Тогда мы идем к вам!

Запостил: kyzi007 kyzi007, (Updated )

Комментарии (16) RSS

  • С виду обычный Command pattern...
    Непонятно только, зачем он в языках, в котором функции являются объектами первого рода. Достаточно, наверное, замыкания
    function makeGoCommand(appPresenter: IApplicationPresenter) {
        return function (appView) {
            appView.showModuleView(ApplicationPresenter(appPresenter).aboutPresenter.view);
        }
    }
    Ответить
    • Гадость в высокой связанности 🙂
      Замыкания - да вы шо, нини, на каждый чих по классу.
      Ответить
    • Тут есть опеределенные нюансы. Дело в том, что эти шаблоны, практически наверняка происходят из какого-нибудь "архитектурного фреймворка", который заставляет их использовать. Традиционно, команды используются для общения с сервером (и больше ни для чего, т.как нормальному человеку в голову не прийдет их использовать, при том, что функию можно по ссылке передать), но для порядку - надо же где-то использовать, чтобы добро зря не пропадало.

      И самое интересное начинается при использовании команд в комплекте с RemoteObject - это такой класс, который отвечает за рассылку запросов по HTTP+AMF. так вот, грубо говоря, new RemoteObject.send(whatever) возвращает токен уникальный для этого запроса (по которому потом можно идентифицировать ответ). Изза того, что command.execute() ничего не возврщает, а токен этот очень нужен, в каждом проекте, где это используется начинаются всяческие попытки допилить архитектуру так, чтобы этот токен как-то все таки получать. При чем, обычно, осознание того, что токен нужен приходит очень поздно.

      Замыкания в AS3 - плохо т.как они всегда создаются по-новой, т.е. не считаются константами. У них this такой же, как и у Яваскриптовых функций - и это чревато проблемами безопасности, когда "чужую" функцию применяют к "своему" объекту. Кроме того, очень часто их пытаются использовать для обработки событий, т.как полноценный обработчик писать лень - но впоследствии обнаруживается, что отписать анонимную функцию от события уже нельзя, если ссылка на нее потерялась.
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8