Не могу разобраться с примером применения шаблона фабрика.
В файле IProduct.as определен интерфейс:

Код:
package example {
public interface IProduct {
function manipulate():void;
}
}
Ухожу в ступор при виде таких строчек:

Код:
var product:IProduct = this.factoryMethod();
...
protected function factoryMethod():IProduct {
...
Моя фантазия и F1 не могут представить имя интерфейса в коде,
кроме двух случаев:

Код:
interface IName //1
class ClassName implements IName //2
работающий пример в аттаче