商店和模型有什么区别?
What's the difference between a store and a model?
在基于通量的应用程序中,有一个称为存储的概念。我一直在尝试确定商店具有哪些功能以及它们与模型有何不同?服务器通信是否发生在商店中?那发生在哪里?他们总是单身吗?
存储是域模型,不是 ORM 模型。
他们管理逻辑域的应用程序状态。他们可以使用集合、单个值或两者的组合来管理状态。
但它们有许多区别于普通型号的特定功能:
- 他们没有二传手。没有人从外面改变商店。
- 数据进入商店的唯一途径是通过他们向调度程序注册的回调。他们通过此回调接收通过系统的每个 操作。他们定义了他们将响应哪些操作,而忽略了大部分操作。
- 他们公开公开的唯一方法是一组 getter 和 register/unregister 听众的方法。
- 当他们管理的状态发生变化时,他们会发出一个
change
事件。这会提醒视图层商店的状态已更改,因此视图可以使用 getter 查询所需的新数据。
他们可以调用新数据,但是当返回数据时,它应该以新操作的形式出现,以便所有商店都可以响应它。这样做可确保应用程序的弹性——您始终拥有整个系统中的所有新数据。
有些人更喜欢在操作创建器中调用新数据,而不是在存储中调用,这强制新数据将源自操作。我相信这是完全可以接受的,而且实际上更常见。不过其实两种风格都可以。
在基于通量的应用程序中,有一个称为存储的概念。我一直在尝试确定商店具有哪些功能以及它们与模型有何不同?服务器通信是否发生在商店中?那发生在哪里?他们总是单身吗?
存储是域模型,不是 ORM 模型。
他们管理逻辑域的应用程序状态。他们可以使用集合、单个值或两者的组合来管理状态。
但它们有许多区别于普通型号的特定功能:
- 他们没有二传手。没有人从外面改变商店。
- 数据进入商店的唯一途径是通过他们向调度程序注册的回调。他们通过此回调接收通过系统的每个 操作。他们定义了他们将响应哪些操作,而忽略了大部分操作。
- 他们公开公开的唯一方法是一组 getter 和 register/unregister 听众的方法。
- 当他们管理的状态发生变化时,他们会发出一个
change
事件。这会提醒视图层商店的状态已更改,因此视图可以使用 getter 查询所需的新数据。
他们可以调用新数据,但是当返回数据时,它应该以新操作的形式出现,以便所有商店都可以响应它。这样做可确保应用程序的弹性——您始终拥有整个系统中的所有新数据。
有些人更喜欢在操作创建器中调用新数据,而不是在存储中调用,这强制新数据将源自操作。我相信这是完全可以接受的,而且实际上更常见。不过其实两种风格都可以。