hm...
В этой конкретной ситуации, я бы делал так:

Код AS3:
package temp {
import org.mvcexpress.mvc.Mediator;
public class BaseMediator extends Mediator {
protected var baseView:IBaseInterface;
override public function onRegister():void {
// mediate IBaseIterface specific stuff.
}
}
}

Код AS3:
package temp {
import org.mvcexpress.mvc.Mediator;
public class A1Mediator extends BaseMediator{
private var _view:WiewA1;
[Inject]
public var proxyX:ProxyX;
[Inject]
public function set view(value:WiewA1):void {
baseView = value;
_view = value;
}
override public function onRegister():void{
super.onRegister();
// mediate ViewA1 specific stuff.
}
}
}
Элегантное решение, и все функции находятся в правильных классов.
и использовать так:

Код AS3:
mediatorMap.map(ViewA1, A1Mediator);
mediatorMap.map(ViewA2Sub, A2Mediator);
mediatorMap.map(ViewBSub, BMediator);
...
var testView:ViewA1 = new ViewA1();
mediatorMap.mediate(testView);
Добавить view inject как интерфейс легко, но я не могу найти хороший практический пример где это необходимо(как функция, или просто для удобства).
Идея такова: каждый конкретный view должна иметь конкретный mediator.
Если view имеет суперклас - mediator может иметь также суперклас, если это нужно.
спасибо за комментарий!