Xpoint
   [напомнить пароль]

Класс который видят все Классы проекта

Метки: [без меток]
2008-12-28 11:56:46 [обр] Александр Петров(0/4)[досье]

Здравствуйте, пишу небольшой проект и одновременно знакомлюсь с флешем и ActionScript 3.

Задача: Хранить данные и дать возможность всем классам обращаться к ним и если нужно модифицировать.

Решение: Логично использовать глобальные переменные. Но это пережитки процедурного языка (тем более я не знаю как их объявлять). Я смотрю в сторону Класса (Объекта), который будет обеспечивать логику хранения и обработки данных.

Проблема: Не получается создать такой Класс что бы его видели все,. Для работы с классом нужно создать его копию (new Object), кажется не правильным использование просто Object без new.

Вопрос: Как и где создать Класс, где его инициализировать. И как сделать так что бы его видели все Классы, и как при этом к нему обращаться?

спустя 3 минуты [обр] Алексей В. Иванов(276/2861)[досье]

Задача популярная, в ОО-программировании она решается шаблоном Singleton.
Смысл прост: создаём класс с статическим методом getInstance для получения одного единственного экземпляра класса.
Пример:

package {

   public final class Singleton {

      private static var instance:Singleton = new Singleton();

      public function Singleton() {
         if (instance) {
            throw new Error( "Singleton and can only be accessed through Singleton.getInstance()" );
         }
      }

      public static function getInstance():Singleton {
         return instance;
      }
   }
}

см. http://en.wikipedia.org/wiki/Singleton_pattern

спустя 1 час 42 минуты [обр] Александр Петров(0/4)[досье]
Алексей В. Иванов[досье], спасибо. Не первый раз помогаете. Огромное спасибо.
MiRacLe[досье], огромное спасибо за наводку.
спустя 8 часов [обр] Александр Петров(0/4)[досье]
А как же этот пакет разместить что бы он виден всем остальным пакетам стал?
спустя 9 минут [обр] Александр Петров(0/4)[досье]
сообщение промодерировано

Все разобрался.
Добавил в папочку с остальными пакетами в моем проекте, и сделал импорт

import apetrov.Singleton;

apetrov - папочка
Singleton - Singleton.as

Powered by POEM™ Engine Copyright © 2002-2005