在运行时更改实现/类

mad*_*ael 6 java algorithm performance data-structures

我正在寻找在运行时更改对象(或变量)的具体类的(开源)程序(或算法)的真实世界示例.

Java中此类行为的示例可能类似于下面的代码片段.这里,LinkedList在频繁插入和/或移除的上下文中表现良好的a 被改变为a ArrayList,其在随机访问和迭代的上下文中表现良好.

List myList = new LinkedList(); 
/* Lots of inserts */
...
myList = new ArrayList( myList ); // 'change' into different class
/* Lots of iteration */
...
Run Code Online (Sandbox Code Playgroud)

上面的Java示例在性能之间LinkedList和之间ArrayList进行了更改.

但是,任何语言的示例,任何数据结构,使用任何技术*,以及出于任何原因都是受欢迎的.

*技术:简单简单,如上例所示,或者become:在SmallTalk中使用,或者__class__在Python中使用,或者......

Dom*_*iek 1

不知道这是否相关,但也许间谍(部分模拟)的使用也符合您的描述(请参阅http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Spy.html) :

一个例子:

Person person = new Person();
person = spy(person);
doReturn("dominiek").when(person).getName();
Run Code Online (Sandbox Code Playgroud)

在幕后创建一个子类,并根据用户的行为声明更改该类的行为。