1. ActionScript / Говнокод #11345

    −172

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 03 Июля 2012

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

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

                    см. http://govnokod.ru/11321
                    Ответить
                • >В Паскале можно.
                  В оригинальном вирто-паскале нельзя.
                  Ответить
      • Тут есть опеределенные нюансы. Дело в том, что эти шаблоны, практически наверняка происходят из какого-нибудь "архитектурного фреймворка", который заставляет их использовать. Традиционно, команды используются для общения с сервером (и больше ни для чего, т.как нормальному человеку в голову не прийдет их использовать, при том, что функию можно по ссылке передать), но для порядку - надо же где-то использовать, чтобы добро зря не пропадало.

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

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

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