记得以前有人报怨在java里没有类似delphi里的class reference 用法,
比如在delphi里可以这样做


type
BaseClass = class
  constructor Create; virtual;
...
end;

BaseClassRef = class of BaseClass

DerivedClass1 = class (BaseClass )

DerivedClass2 = class (BaseClass )

RegisterClass(DerivedClass1);
RegisterClass(DerivedClass2);
...
var
  AClassRef : BaseClassRef ;
begin

  //the class name can be stored in a configuration profile
  AClassRef := BaseClassRef(FindClass('DerivedClass1'));
...
end;

现在, java里的IOC框架PicoContainer也有类似的功能。比如 
 
Interface BaseIntf

class DerivedClass1 implements BaseIntf

class DerivedClass2 implements BaseIntf

public void () {
   MutablePicoContainer pico = createPicoContainer(null);
   pico.registerComponentImplementation("DerivedClass1",DerivedClass1.class);
   pico.registerComponentImplementation("DerivedClass2",DerivedClass2.class);
...

  //the class name can be stored in a configuration profile
  BaseIntf t = (BaseIntf) pico.getComponentInstance("DerivedClass2");
  assertNotNull(t);
}
 
目前, pico也有.net portion

相关文章:

  • 2021-05-23
  • 2021-06-03
  • 2021-10-29
  • 2022-12-23
  • 2021-10-15
  • 2021-07-27
  • 2022-12-23
  • 2021-12-16
猜你喜欢
  • 2021-07-22
  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
  • 2021-11-10
  • 2022-02-25
  • 2021-12-16
相关资源
相似解决方案