1. PHP / Говнокод #4479

    +162

    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
    21. 21
    22. 22
    23. 23
    24. 24
    <?php
    
    class Model_Crypt_FactoryCipher {
        
        const BlOWFISH = 'Model_Crypt_BlowFishCipher';
        
        
        /**
         * создает экземпляр cipher для указанного алгоритма
         * 
         * @return Model_Crypt_BlowFishCipher
         */
        public static function createCipher($crypt) {
            
            $cipher = new $crypt;
            
            if ($cipher instanceof Model_Crypt_BlowFishCipher) {
                return new Model_Crypt_BlowFishCipher ();
            } else {
                throw new Exception ( "This algoritm <$crypt> not implement yet" );
            }
        }
    
    }

    Гениальная фабрика. Используется один раз путем передачи константы "BlOWFISH" в метод createCipher()

    Запостил: user654321, 29 Октября 2010

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

    • Простите, а в пхп можно так создавать объекты?
      Я осознал что жизнь моя бесполезна.
      Ответить
      • В пхп еще много чего можно так делать. Например, методы вызывать или получать значения переменных.
        Ответить
    • Этот алгоритм Кладбище.... = )
      Ответить
    • Скорее всего автор подглядел, что в жабе в аналогичный метод передают имя алгоритма, и фабрика возвращает алгоритм (рефлексией там или из мапы с потокобезопасными синглтонами -- не важно)

      и вот этот прием и переродился в голове автора в такие-вот чудесатости
      Ответить

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