Архивы за: Март 2010
Как много аргументов может быть у функции?
Коллеги не раз жаловались мне на мой класс UploadAction, единственный метод которого имел следующий вид:
- public function start(fileStorage:FileStorage, directoryPath:String = "",
- typeFilter:Array = null, nativeFiles:Array = null,
- singleFile:Boolean = false,
- defaultResize:int = UploadFileData.RESIZE_NONE,
- toUploadedFileSet:Boolean = false, autoClose:Boolean = false):void
Вызовы иногда выглядели удручающе:
- action.start(fileStorage, null, null, null, false, UploadFileData.RESIZE_NONE, true);
Я разводил руками - что тут поделаешь? Очень умный метод просто. И вот недавно в книге Объектно ориентированное конструирование программных систем я прочитал замечательный принцип:
Определение: операнд и опция
Аргумент является операндом, если он представляет объект, с которым оперирует программа.
Аргемент является опцией, если он задает режим выполнения операции.Принцип операндов
Аргументы методов должны быть только операндами, но не опциями.
Яркий пример применения подобного метода - drawing API Graphics в ActionScript 3.0 - там, например, цвет, прозрачность и толщина не являются аргументами метода drawRect().
Так что UploadAction я переделываю ![]()





