Objective c 目标C中游戏对象的状态设计模式

Objective c 目标C中游戏对象的状态设计模式,objective-c,Objective C,尝试为游戏对象实现状态设计模式。考虑到每个状态都伴随着可能涉及动画的客户端对象的可视更改,这很快就产生了问题:这些状态是否可以访问上下文对象的可视属性,或者它们是否只是要求上下文对象进行可视更改,这会有一点限制 例如:假设我有一扇门有多种状态:打开、关闭、锁定、密封。。。这意味着拥有一个Door对象以及一个抽象的DoorState类和具体的DoorOpenState、DoorClosedState、DoorLockedState和DoorSealedState类。知道门的外观随着每个状态的变化而

尝试为游戏对象实现状态设计模式。考虑到每个状态都伴随着可能涉及动画的客户端对象的可视更改,这很快就产生了问题:这些状态是否可以访问上下文对象的可视属性,或者它们是否只是要求上下文对象进行可视更改,这会有一点限制

例如:假设我有一扇门有多种状态:打开、关闭、锁定、密封。。。这意味着拥有一个Door对象以及一个抽象的DoorState类和具体的DoorOpenState、DoorClosedState、DoorLockedState和DoorSealedState类。知道门的外观随着每个状态的变化而变化,例如DoorOpenState是否应该访问门的内部视觉属性?它如何做到这一点而不必向外界公开私人信息?在C++中,将状态定义为朋友类可能会解决问题,但是如何在目标C或任何现代语言中处理此类问题,如C或java?
谢谢

我个人创建了一些东西,知道如何根据对象的状态渲染对象。。。所以门对象保持它的状态,就是这样。。然后,另一个对象DoorRenderClient或其他东西在门状态更改时看到,知道如何更改渲染以匹配FB的react.js如何处理我想象的事情……这是否意味着门类将有一个接受门状态并知道如何渲染它的DoorRenderer?我说的是:调用Door.SetStatenewState。DoorRenderer看到Door.state已更改,然后相应地更新场景。为什么要将DoorState设置为对象?如果它刚刚打开/关闭/锁定/密封,您不能使用整数常量吗?