【发布时间】:2020-07-30 23:05:53
【问题描述】:
假设我有一个用例(业务逻辑)、一个适配器(数据库)和一个域对象。我需要从我的域逻辑调用数据库,但问题是如何。现在的做法是为域提供适配器:(1. variant)
function usecase(adapter, domain):
domain(adapter)
function domain(adapter):
[some logic]...
adapter.save_to_database()
[more logic]...
call usecase(adapter, domain)
现在为了避免让域逻辑知道适配器,我需要返回所有数据并从用例调用适配器:(2. variant)
function usecase(adapter, domain):
data = domain.some_logic()
other_data = adapter.save_to_database(data)
domain.more_logic(other_data)
call usecase()
所以,每次我使用适配器时,我都需要退出域,以便调用适配器。那是对的吗?如果,那为什么它比上面的解决方案更好?
【问题讨论】:
标签: clean-architecture onion-architecture