在我的应用程序中,所有已完成的操作都在当前选定的对象上,这使我认为状态设计模式最适合。但是,逐个选择的所有对象基本上是相同的,因此每个状态实际上没有区别,除了该项只是一个不同的。
我的情况很像目录结构。我有一个文件夹集合,其中每个文件夹可能有不同的文件,但它仍然是一个文件夹。无论选择哪个文件夹,用户只能看到该文件夹的内容或添加文件。我的程序还通过所有文件夹(假定一个级别)进行迭代,并显示文件夹下所有文件的内容。
我很困惑,如何在我的应用程序中维护当前状态(=当前选择的文件夹)?
添加-上
令我困惑的是下一个状态逻辑,我不确定它属于哪个。请假设我正在使用特殊文件夹My Documents
,My Pictures
和My Music
。转换逻辑(为简单起见)是,如果用户将10个文件添加到这些文件夹中的任何一个或每个文件夹的总大小超过10 MB,它应该转换到下一个文件夹。此外,应用程序应首先显示My Documents
,而不是转换为My Pictures
,而不是转换为My Music
。这就是为什么我认为它也是一个状态,因为每个文件夹都需要知道它需要转换到哪个文件夹。
答案 0 :(得分:0)
您可以使用状态和迭代器模式的组合。如果对象的状态很简单,只需使用一些表示文件夹状态的枚举(如OPEN或CLOSED)即可实现状态模式。 Iterator帮助您维护&一般来说,访问文件夹对象。