
Код AS3:
Дело в том, что я тоже хочу сделать один большой загрузчик
LoaderMax
BulkLoader
И много других, достаточно загуглить. Не зачем велосипеды изобретать.
Добавлено через 10 минут
Цитата:
|
В интерфейсе между детьми я могу увидеть некоторый смысл
|
Пример рас:
Главное приложение оболочка грузит в себя пачку плагинов. Каждый плагин это отдельный проект. Наследоваться от какого-то базового класса плугина глупо и неэффективно, будет куча конфликтов. Интерфейс - ок. В итоге родителю абсолютно пофигу как там реализован плугин, он будет работать с его интерфейсом.
Пример два(не совсем родитель-дети, но без интерфейса плохо):
Паттерн "стратегия". Например какой-то поиск пути несколькими методами, либо какая-то квестовая система, где одна задача решается пачкой методов.
Для поиска пусти у нас есть интерфейс ИРасчетПути. В котором допустим есть метод getPath(cells:Array):Array - принимает массив ячеек карты, выдает массив ячеек по которым юнит может пройти. Далее мы реализовываем несколько методов расчета и встегиваем в нужный момент в нужное место в каком-то манагере.
Для квестовой системы так же. Есть какой-то IConditionChecker.
Например такой(из моего реального проекта):

Код AS3:
[Event(name = "complete", type = "flash.events.Event")]
[Event(name = "change", type = "flash.events.Event")]
public interface IConditionChecker extends IEventDispatcher
{
//=====================================================================
// PUBLIC
//=====================================================================
function init(subtype:String, num:int, data:String, delta:Boolean):void;
function update(status:int, data:BaseProtoData):void;
function setCounter(counter:int):void;
//=====================================================================
// ACCESSORS
//=====================================================================
function get commandId():int;
function get complete():Boolean;
function get count():int;
function get needCount():int;
}
В итоге мы реализуем подсчет условий квеста одинаково, но реализация подсчета отличается очень сильно. Считать нужно ВСЁ. От заработанного пользователем бабла, до кол-ва кликов, до выполненных каких-то иных игровых задач, типа построить дом такой-то.
Пример три, паттерн "команда". Интерфейс ICommand реализуется как вздумается. Можно обойтись базовой командой и ее наслоедовать, и часто это удобнее чем интерфейс, но абсолютно не всегда.