Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从几个方面来看,使用中介是一个好主意吗?_Objective C_Design Patterns - Fatal编程技术网

Objective c 从几个方面来看,使用中介是一个好主意吗?

Objective c 从几个方面来看,使用中介是一个好主意吗?,objective-c,design-patterns,Objective C,Design Patterns,我有一个项目,我有很多视图,我想使用中介模式。 这是个好主意吗?还有,你有什么想法吗 Thx you:)请原谅我的英语。如果您使用了大量视图,您可能需要使用中介。这样做的主要原因是如果您的类经常相互引用/相互调用/共享数据中的方法。中介使类不会变得过于相互依赖,并为您提供了一种简单的方法来定义以何种形式传递的信息。从本质上讲,您可以知道中介将始终以您想要的形式返回您想要的信息,而不必担心一个类中的更改会影响另一个类 我觉得调解人有点痛苦,只有当你有大量的课程需要经常交流,并且你计划将这个程序保留

我有一个项目,我有很多视图,我想使用中介模式。 这是个好主意吗?还有,你有什么想法吗


Thx you:)请原谅我的英语。

如果您使用了大量视图,您可能需要使用中介。这样做的主要原因是如果您的类经常相互引用/相互调用/共享数据中的方法。中介使类不会变得过于相互依赖,并为您提供了一种简单的方法来定义以何种形式传递的信息。从本质上讲,您可以知道中介将始终以您想要的形式返回您想要的信息,而不必担心一个类中的更改会影响另一个类


我觉得调解人有点痛苦,只有当你有大量的课程需要经常交流,并且你计划将这个程序保留一段时间并编辑/扩展/等等时,你才应该这样做。如果你一次只展示一两个视图,而这些视图只需要相互交流,或者很少与其他视图交流,这可能有点过头了。

在我看来,如果在实施过程中牢记以下几点,这可能是一个好主意

  • 中介类应该在视图控制器的协议上工作。每个视图控制器应确认该协议
  • 视图控制器应共享一个公共数据源
  • 视图中的更新应传递给数据源/数据源控制器。例如,选定的项目
  • 数据源更新应仅传递给活动/选定的视图控制器
  • 当视图控制器更改为其他视图控制器时,在呈现新视图之前,只应要求数据源提供新的数据集
  • 如果中介类处理这些事情,这可能是实现这些事情的最佳方式。使用此模式还可以实现良好的可扩展性


    祝你好运。

    目前这不是很有建设性。尝试解释更多关于您的视图的信息,以及您如何使用此模式来看待它。所以是关于具体的问题,而不是一般的设计问题。