我有一个列表对象 - 节点列表。我想向用户提供“就地排序/排序”。用户可以将任何项目放在列表中的任何位置。是否有一种设计模式,我将整个行为作为一个包(作为一个对象或其他任何东西)保存,并且可以在需要排序模式时临时借用它?
我在 Javascript 中执行此操作。
我想到了装饰器,但我需要更改原始对象的属性。感觉不是正确的方法。装饰器假设在不修改原始对象的情况下添加功能。
新细节:
对于我正在尝试做的事情,我有一个更好的类比。让我们考虑一个游戏角色。角色一直活到游戏存在。角色可以扮演一些角色。角色可以改变角色的属性,这是永久性的。角色可以一次或多次扮演一个或多个角色。我将如何构建程序中的“角色”和“角色”。
如果角色就像角色的装饰器,那么修改角色的私有属性而不是角色是一种好习惯吗?还有什么办法吗?