|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
О тщетности всего сущего
Всем привет!
В очередной раз открывая любимое IDE я всё больше задумываюсь о тщетности и избыточности всех тех подходов, что я обычно использую. Например, связь с сервером. Это ведь было бы очень удобно, если бы я мог писать а не волочить за собой ссылку в главный контроллер. Проблема с дочерними аппдоменами, которые тоже хотят пощупать этот Server решается синглтоном с глобальной точкой доступа. Имеем ссылку - передадим в дочерний домен. Или например "открыть новое окно". Что делаем? Отсылаем событие до какой-то-там-вьюшки, которая будет иметь контрол для открытия новых окон. Но почему не ? И всё в этом духе. Зачем воротить гипер-системы, откуда у меня вообще взялась ненависть к контролам на статике? P.S. не надо обсуждать синглтон, речь идёт о глобальной доступности главных компонентов приложения всем желающим. И не только: об отрицании всех подходов "что так надо и принято", в которых вообще можно усомниться.
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 18.03.2011 в 13:53. |
|
|||||
В последних 2х проектах делаю нечто типа прокси, статик диспатчер к которому может обратиться любой обьект и послать некий ивент, а в любой другом классе идет подписка на нужное событие и нужные действия. Дабы отладка не стала адом можно передавать ссылку на класс который диспатчит ивент, в режжиме дебага выводится имя \ значение этого класса, вроде удобно:
package by.lord_xaoca.utils { import flash.display.Shape; import flash.errors.IllegalOperationError; import flash.events.Event; /** * ... * @author Lord_Xaoca * Локальный портал для утилизации всякого Г от всех - всем. */ public class Proxy { //- PRIVATE & PROTECTED VARIABLES ------------------------------------------------------------------------- private static var _dispatcher :Shape; private static var _debugMode :Boolean = false; //- PUBLIC & INTERNAL VARIABLES --------------------------------------------------------------------------- public static const BLOCK_ON :String = "blockOn"; public static const BLOCK_OFF :String = "blockOff"; //- CONSTRUCTOR ------------------------------------------------------------------------------------------- public function Proxy() { throw new IllegalOperationError("STATIC CLASS"); } //- PUBLIC & INTERNAL METHODS ----------------------------------------------------------------------------- public static function init():void { _dispatcher = new Shape(); } public static function block_GUI($value:Boolean, $target:Object = null):void { if (_debugMode) trace($target ? $target : "Somebody", "say : BLOCK", $value ? "ON" : "OFF" + "."); if($value) _dispatcher.dispatchEvent(new Event(Proxy.BLOCK_ON)); else _dispatcher.dispatchEvent(new Event(Proxy.BLOCK_OFF)); } public static function addEventListener($eventType:String, $function:Function):void { _dispatcher.addEventListener($eventType, $function, false, 0, true); } public static function removeEventListener($eventType:String, $function:Function):void { _dispatcher.removeEventListener($eventType, $function); } //- PRIVATE & PROTECTED METHODS --------------------------------------------------------------------------- //- EVENT HANDLERS ---------------------------------------------------------------------------------------- //- GETTERS & SETTERS ------------------------------------------------------------------------------------- public static function get debugMode():Boolean { return _debugMode; } public static function set debugMode($value:Boolean):void { _debugMode = $value; } //- END CLASS --------------------------------------------------------------------------------------------- } } |
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Просветление?
Выходишь из стадии abstraction freak)
__________________
Отряд Котовскага |
Часовой пояс GMT +4, время: 05:01. |
|
« Предыдущая тема | Следующая тема » |
|
|