|
|
|||||
Регистрация: Dec 2001
Адрес: Kiev
Сообщений: 91
|
Design patterns?
написал код загрузчика и вот уже третий день пытаюсь определицца к какому паттерну его отнести... я его отнес к Command (Behavioral)...
может есть у кого-то больше опыта по идентификации паттернофф... буду рад услышать ваше мнение по поводу моего кода и паттерна к которому он может относицца... заранее благодарю... package com.util { import flash.display.MovieClip; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; //************ CLASS DECLARATION ************ /* LoaderController class controls the loading process on the Command (Behavioral) design pattern. METHODS: - getBytesLoaded - return bytesLoaded - getBytesTotal - return bytesTotal - progressLoader - displays process loading - completeLoader - change frame on root EVENTS: rootLoaderInit - IE6 AS3 Preloader Events Failing and wait when finish initialization rootSymbol rootLoaderProgress rootLoaderComplete rootLoaderError */ public class LoaderController { private var root_mc:MovieClip; private var loader_mc:MovieClip; private var rootLabel:String; private var rootSymbol:String; private var returnFunction:Function; private var bytesLoaded:Number; private var bytesTotal:Number; private var bytesTrash:Number; //************ CONSTRUCTOR ************ public function LoaderController (_root_mc:MovieClip, _loader_mc:MovieClip, _rootLabel:String, _rootSymbol:String, _returnFunction:Function):void { root_mc = _root_mc; loader_mc = _loader_mc; rootLabel = _rootLabel; rootSymbol = _rootSymbol; returnFunction = _returnFunction; loader_mc.loader.text = "0 %"; loader_mc.loader_line.scaleX = 1; root_mc.addEventListener (Event.ENTER_FRAME, rootLoaderInit); root_mc.loaderInfo.addEventListener (ProgressEvent.PROGRESS, rootLoaderProgress); root_mc.loaderInfo.addEventListener (Event.COMPLETE, rootLoaderComplete); root_mc.loaderInfo.addEventListener (IOErrorEvent.IO_ERROR, rootLoaderError); } //************ METHODS ************ public function getBytesLoaded ():Number { return bytesLoaded; } public function getBytesTotal ():Number { return bytesTotal; } private function progressLoader ():void { var proc:Number = Math.floor(bytesLoaded/bytesTotal*100); loader_mc.loader.text = proc +" %"; loader_mc.loader_line.scaleX = proc/100; } private function completeLoader ():void { root_mc.gotoAndStop(rootLabel); } //************ EVENTS ************ private function rootLoaderInit (event:Event):void { //IE6 AS3 Preloader Events Failing if (!(bytesTrash>1) && root_mc.loaderInfo.bytesTotal >1) { if (bytesLoaded == bytesTotal && bytesTotal>1) { completeLoader (); } else { bytesLoaded = root_mc.loaderInfo.bytesTotal; bytesTotal = root_mc.loaderInfo.bytesLoaded; progressLoader (); } } // Wait when finish initialization rootSymbol. if (root_mc[rootSymbol] != null) { returnFunction(); loader_mc.visible = false; root_mc.removeEventListener(Event.ENTER_FRAME, rootInit); } } private function rootLoaderProgress (event:ProgressEvent):void { bytesLoaded = event.bytesLoaded; bytesTotal = bytesTrash = event.bytesTotal; progressLoader (); } private function rootLoaderComplete (event:Event):void { completeLoader (); } private function rootLoaderError (event:IOErrorEvent):void { trace("ioErrorFunction (root): " + event); } } } Design patterns - шаблоны проектирования, предназначенны для оптимизации кода. Используюцца либо на этапе проетирования системы либо во время рефакторинга/оптимизации уже написанного проекта. Для флеша можно применять либо для очень больших проектофф либо когда однотипные проекты задолбали и хочицца придумать для себя развлекуху ))) Как правило используецца либо на уровне самостоятельного класса, либо класса и взаимодействия с его наследниками... |
|
|||||
расслабся и не думай об этом ) лучше бы изучил как правильно писать коменты ASDoc было бы полезнее )
Про паттерны полезно почитать и осмыслить что к чему, но не стоит останавливатся на точном следовании того или иного паттерна - все зависит он проекта! И уж тем более не стоит пытаться готовый код подогнать под какое либо определение.
__________________
33 коровы |
|
|||||
Регистрация: Nov 2006
Сообщений: 134
|
Я могу понять, когда мы выбираем паттерн для решения определенной задачи.... Но искать паттерн под готовый код - это уже... хм... вобщем... да.
-Это из той же оперы, что писать юнит-тест к написанному и протестированному ручками коду
__________________
http://creationcomplete.com |
|
|||||
Регистрация: Dec 2001
Адрес: Kiev
Сообщений: 91
|
по поводу комментариефф... тексты исчо деффачка транслятор будет проверять... а формат камментофф это шаблон клиента... вообще позиция клиента и мне не понятна но он хочет что бы ффсе классы были написанны "Java-style design pattern"... поэтому и получаецца что я свой код пишу годамми отточенными шаблонами но надо мои шалоны исчо как позицианировались относительно стандартных design pattern....
судя по вашим камментариям помощи я не дождусь )))))) ну да ладно... |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
По поводу оптимизации. Оптимизация всегда направлена на ухудшение кода в пользу его быстродействия.
|
|
|||||
ветеран форума
|
Цитата:
__________________
4am is time to rock |
|
|||||
откуда там упоминание о Command взялось вообще?
> controls the loading process... я бы вообще не стал относить этот код к какому-либо типовому решению, но елси бы меня взяли за горло и вежливо попросили это сделать, то, скорее, это адаптер для загрузки чавото кудато |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Цитата:
|
|
|||||
ветеран форума
|
Цитата:
__________________
4am is time to rock |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Цитата:
|
Часовой пояс GMT +4, время: 20:48. |
|
« Предыдущая тема | Следующая тема » |
|
|