我正在掌握iOS并使用不同的框架。我的项目变得越来越复杂(当然),我想我正在以复杂的方式做一些事情。
我想知道是否有更简单的设计模式来处理这种情况:
应用,数组中包含大量属性;还包含NSDictionaries的NSDictionary,表示每个属性的选项。
属性编辑器:显示显示当前属性的表格,其中包含详细视图的编辑选项
详细信息视图显示包含特定属性的所有选项的表
我现在通过以下方式工作:
App - > 将自己设置为 Property Editor 的委托,后者访问委托(App)的当前属性和属性选项数组
属性编辑器 - > 将自身设置为每个详细信息视图的委托,并在详细信息视图上设置属性,表示来自委托的适当属性选项数组
明细视图 - > 适当的属性选项数组
这看起来很复杂。将详细信息视图委派给我的应用会更好吗?是否有更清晰的设计模式?我意识到所有这些类之间存在紧密耦合,但我不明白这是如何可以避免的。
答案 0 :(得分:1)
为什么不创建一个单例类来访问所有应用程序属性(让我们称之为PropertiesContainer
)。该课程将包含必要的词典,并由[PropertiesContainer sharedInstance]
访问。
这样,您提到的所有类都不需要与每个类耦合来访问属性。现在您将拥有一个可以在任何需要的地方轻松访问的课程。 (并且不需要知道谁使用它)
答案 1 :(得分:1)
使用MVC模式,您可以创建一个模型对象来保存整个属性树,并使用它来与每个视图或编辑器通信正确的子树。
Model对象不一定需要创建为单例,只需让App创建并保留一个(或根据需要保留多个)。