@startuml class CommandHandler { + {static} getInstance() : CommandHandler + createBlock(prefabId:string, position:Vector3, rotation:Quaternion) : void + moveBlock(blockId:string, prePosition:Vector3, newPosition:Vector3, preRotation:Quaternion, newRotation:Quaternion) : void + removeBlock(blockId:string) : void + removeGroup(blockIds:List) : void + rotateBlock(blockId:string, newRotation:Quaternion) : void + undoAction() : void + redoAction() : void + clearHistory() : void } MonoBehaviour <|-- CommandHandler @enduml