Может быть вопрос глупый, так что сразу в блондинок =) В общем такая тема. В скрипте используется синглтон. Хочется чтобы классы проекта как можно меньше "знали" о других классах. По-этому использую следующую примочку: PHP: <?php class cl1 { .... public static function singleton() { .... } public function tratata() { ..... } } class cl2 { public function some(cl1 $data){ .... echo($data->tratata()); .... } } //используем cl2->some(ck1::singleton()); Чувствую что-то делаю плохо. Если не сложно подскажите, какие подводные камни у такого подхода?
а смысл? а-та-та … одиночка как раз и позволяет благодаря статическим вызовам избежать создания повторяющихся объектов . Но, спешу тебя обрадовать — у тебя не одиночка )
а так : PHP: <?php class Coverages { static private $instance = NULL; static function singleton() { if (self::$instance == NULL) { self::$instance = new Coverages(); } return self::$instance; } private function __construct(){} private function __clone(){} } =) Если нужен чисто "одиночка", - делай полностью статический класс и дергай его везде. А прикол у синглтона как раз такой что я могу на него ссылку передать.. или я опять ошибаюсь? зы: "а-та-та" да =) туплю, но раздел подходящий подправил
хорошо, а теперь PHP: <?php class cl2 { public function some() { Coverages::singleton()->tratata(); } } ?> зачем передавать объект, который и так доступен?
... и который и так в единственном экземпляре... даже не знаю, тогда.. Просто позволяет немного абстрагироваться, наверное. Главное скажите, ничего "пресТУПнОГО" данном применении не наблюдается? если нет, - то меня как бы устраивает. =)
не так страшно, как если бы копию =) А в общем спасибо за конструктивную беседу.. обдумаю на досуге...
Эта называется dependency injection -> гугль =) А "хорошо или плохо" у коней в сферическом вакууме нету.
Apple Тебя странный/прелестный/очарованный кварки не смущают? Вакуум, кстати, еще тот супчик, если по нему долго и упорно бить, то можно из него выбить материю
Знаком с этой фичей. Но правильно называть это - объёмно детонирующий боеприпас. Зверская вещь. Первый взрыв распыляет "напалм", он смешивается с воздухом "окислителем" и происходит объёмный взрыв. Красота.
Че? Какой окислитель, какой взрыв? О_о Не переходите на химию =) Бугага, окислитель и взрыв ... молодец)))
Там не напалм, а наоборот - быстрогорящие смеси. Основная идея - выжечь весь кислород. Кто не сгорел - задохнется, кто не задонулся - прибьет давлением ) Хотя все сгорают. А про вакуумную бомбу - это сарказм был, да. Между прочим, я через 2 часа уезжаю на авиационную базу Военно-воздушных сил РК в г. Астане. Буду на KADEX-2010 трогать МиГ-31 за писю )
По-этому я в кавычках и написал Дык, это понятно. Я просто беседу поддержать хотел. Миг-31 - вещь! Я на МАКС`ах всегда им любовался. =) Но красивее всех всё-таки семейство СУ-27.