Я пытался узнать больше о чистой архитектуре дяди Боба из блогов, статей и видео.Чистая архитектура: поток последовательности между структурами
Если бы я использовал базу данных в этой архитектуре, то что должен знать интерфейс UI (как структура, например, сеть или форма) о базе данных? Или в более общем плане, как данные должны проходить между двумя или более частями/частями, находящимися в одном слое?
Например, пользовательский интерфейс будет взаимодействовать с моими адаптерами/шлюзами для взаимодействия с бизнес-объектами. Для чтения/записи я вижу, что пользовательский интерфейс может вызывать любой класс/классы, которые могут обращаться к базе данных и передавать их в адаптеры (а)/шлюз (ы), чтобы он мог взаимодействовать с бизнес-объектами.
public class SomeUI
{
public static void Main(string[] args)
{
SomeAdapter adapter = new SomeAdapter();
SomeDataAccess db = new SomeDataAccess();
db.Save(adapter);
}
}
public class SomeDataAccess
{
public void Save(SomeAdapter adapter)
{
//Interact with database
}
}
public class SomeAdapter
{
//properties
}
Многие из статей едва отличаться от этого одного (https://subvisual.co/blog/posts/20-clean-architecture). Я не нашел хорошую статью, которая описывает, как части, которые находятся на одном слое, должны работать друг с другом. Таким образом, статьи, ссылающиеся на это, будут приемлемым ответом.
Это, похоже, не нарушает правило зависимостей, но похоже, что я не делаю что-то правильно, так как я создаю зависимость между моим пользовательским интерфейсом и базой данных. Я считаю, что я могу передумать концепцию, и я полагаю, что это может быть от удара по изучению трехуровневой архитектуры (UI -> BLL -> DAL).