2

假设我有以下课程:

class Fruit { ... }
class Apple extends Fruit { ... }
class Orange extends Fruit { ... }

假设用户想要创建一个新的Apple. 他们从下拉列表中选择一种类型,然后我使用一项服务将类型字符串转换为具体类型:

def fruit = FruitService.createFruit(params.type)
fruit.properties = params
fruit.save()

这将成功保存一个新Apple实例。

现在假设用户意识到他们犯了一个错误并且他们想创建一个Orange代替。在编辑视图中,我为用户提供了将类型更改为 an 的功能Orange,但是如何更新现有Apple实例以使其现在为 an Orange?由于其他关系,我不能简单地删除Orange并创建一个新实例。Apple这甚至可能吗?

4

0 回答 0