Mелкое добавление к посту
Котяра. Лучше назвать IInitializable вместо IModul. Название интерфейса должно (should, но не обязано) отражать действие им производимое См. IBitmapDrawable, IExternalizable из AS3. А также некоторые кастомные названия: IMovable (перемещабельно), ISerializable (сериализабельно). Суть класса, реализующего интерфейс становится более понятна.
UPDATED.

Код AS1/AS2:
public interface ISerializable {
public function serialize():String
}
public class AClass implements ISerializable {
public function serialize():String {
return this.toString();
}
}
var anObject:AClass = new AClass();
var someObject:Object = new Object();
// где-то есть такой метод
public function trySerealize(o:*):void {
// Динамическое связывание
if (o is ISerializable) {
var serializedString:String = (o as ISerializable).serialize();
}
}
trySerealize(anObject);
trySerealize(someObject);