相关疑难解决方法(0)

什么是"线程安全"代码?

这是否意味着两个线程不能同时更改基础数据?或者它是否意味着当多个线程运行时,给定的代码段将以可预测的结果运行?

language-agnostic concurrency multithreading programming-languages

339
推荐指数
15
解决办法
16万
查看次数

什么样的代码可以称为"重入"?

有人能告诉我哪些代码可以被称为"重入"代码?

我在阅读一些实时操作系统时遇到过这个词.为了使代码成为"可重入"代码,必须坚持哪些学科?

operating-system

25
推荐指数
3
解决办法
2万
查看次数

何时在Java中使用单方法接口

我在许多图书馆见过像Spring它使用了大量的接口,与单一的方法在他们像BeanNameAware等.

实现者类将使用单个方法实现许多接口.

在什么情况下保持单个方法接口是有意义的?这样做是为了避免使一个单一界面变得笨重ResultSet吗?或者是否有一些设计标准主张使用这些类型的接口?

java oop design-patterns interface

21
推荐指数
2
解决办法
1万
查看次数

清洁架构 - 罗伯特马丁 - 如何连接用例

我正在尝试实施Robert Martin描述的清洁架构.更具体地说,我正在使用VIPER,这是一个iOS版本的Clean Architecture.

我遇到的问题如下:

用户开始查看带有位置(引脚)的地图.如果他点击一个按钮,则会丢弃一个引脚并将其带到另一个视图以创建(或编辑,如果它是对现有引脚的点击)该地点(或取消).在另一个视图中,用户可以编辑地点的信息,然后单击"返回"或"完成"(或"编辑").如果他单击"完成",PlaceDetailsViewController将向PlaceDetailsPresenter发送一条消息,其中包含位置信息,PlaceDetailsPresenter使用CreatePlaceInteractor创建该位置.此交互器返回用于标识场所的GUID.

如果用户在创建场所之前点击回来,他会回到地图并且掉落的针脚会上升和离开(因为它没有GUID,它是一个新的位置并消失).如果他在创建后单击后退,则引脚会保留在那里(因为它应该有一个GUID).

我该如何连接所有这些以及应该存储地点信息(包括GUID)的位置?澄清一点:

  1. 谁应该通知MapPresenter针脚留在那里还是消失?它是PlaceDetailsPresenter还是应该将此信息传递给PlaceDetailsWireframe - > MapWireframe - > MapPresenter - > MapView?
  2. 在返回之前,应该在PlaceDetailsPresenter或PlaceDetailsViewController中存储此GUID的位置?

现在,这就是我所拥有的: 在此输入图像描述

编辑:

基本上我认为问题在于VIPER来自罗伯特·马丁的清洁架构而且他来自Web(Rails)背景,所以他对状态没有太多考虑(或者在他的会谈中没有详细说明).

这主要是我的问题,应该在哪里存储状态,不同模块应该如何通信,如果是通过线框,或通过数据库,或通过交互者,或通过演示者彼此通信,如https:/ /github.com/objcio/issue-13-viper-swift.

architecture software-design ios

12
推荐指数
1
解决办法
4237
查看次数

在VIPER架构中,每个演示者应该只与一个Interactor进行交互吗?

我在这里阅读了关于VIPER架构http://www.objc.io/issue-13/viper.html(以及其他一些来源),但我仍然无法弄明白一件事,如果每个演示者最多与之互动一个Interactor?

以下是关于它的更长时间的讨论,可以更好地解释我的问题:使用2种方式的用例进行相同的操作

architecture ios ios8

3
推荐指数
1
解决办法
1520
查看次数