我正在使用一个具有定义良好的C的硬件。硬件是有状态的,相关的API调用需要保持正确的顺序才能使硬件正常工作。API调用本身总是会返回,传递一个指示调用是否成功的标志,或者如果没有,为什么不成功。硬件不会处于某种未定义的状态。实际上,如果状态不正确,API调用会间接通知硬件的当前状态。这似乎是一种相当常见的硬件API风格。
我的问题是:是否有一种以高级语言包装这样一个硬件状态机的既定设计模式,以保持一致性?
我的开发是用Python开发的。理想情况下,我希望将硬件状态机抽象到一个简单得多的状态机中,并将其封装在一个表示硬件的对象中。我不确定如果尝试创建多个表示同一块硬件的对象,应该发生什么。
对此我表示歉意,我对这方面的知识不太了解,所以我也在寻求描述的帮助!
发布于 2012-07-09 03:47:01
因此,实际上,您只是想要一个面向对象的包装器围绕一个fact,而使用该对象的其他对象是否仍然可能以一种不适当的方式调用其方法?许多OO语言,包括Python (虽然我不是它的专家)都支持这种异常的概念。如果客户端代码调用在当前状态下无效的方法,请考虑抛出一个InvalidStateException。
如果要防止此对象的多个实例,可以实现Singleton设计模式。
发布于 2012-07-08 23:16:21
仅仅在int中跟踪状态有什么问题呢?然后,在每个API调用上,您将检查当前状态是否允许操作,但如果存在数十个或更多状态,则可能会变得乏味。
如果你真的觉得有必要采用所有的设计模式,那么也许状态模式会让你感兴趣。
https://softwareengineering.stackexchange.com/questions/156060
复制相似问题