class SimpleController implements IConfigurable, IReferenceable, IUnreferenceable {
  private _worker: any;
  
  private _depedencyResolver = DependencyResolver.fromTuples(
      "worker", new Descriptor("*","worker","*","*","1.0")
  );

  public configure(config) {
    this._depedencyResolver.configure(config);
  }

  public setReferences(references) {
    this._depedencyResolver.setReferences(references);
    this._worker = this._depedencyResolver.getOneRequired("worker");
  }

  public unsetReferences() {
    this._depedencyResolver = new DependencyResolver();
  }
...
}

let references = References.fromTuples(
  new Descriptor("sample", "worker", "worker1", "111", "1.0"), new Worker1("name1"),
  new Descriptor("sample", "worker", "worker2", "222", "1.0"), new Worker2("name1")
);

let config = ConfigParams.fromTuples(
  "dependencies.worker", "*:worker:worker1:111:1.0"
);

let controller = new SimpleController();
controller.configure(config);
controller.setReferences(references);
controller.greeting("world");
controller.unsetReferences();
controller = null;