Реально ли иметь уровни DAL и BLL в приложении Mac OS X? - PullRequest
1 голос
/ 03 мая 2011

Я занимаюсь разработкой приложения для Mac OS X с использованием Objective-C и Xcode 4 и хочу найти лучший способ обработки доступа к данным и выполнения задач бизнес-логики без использования CoreData.

Я изфон .NET MVC, и мой контроллер обычно вызывал бы уровень обслуживания (используя шаблон репозитория), чтобы вернуть данные, которые могут быть сопоставлены с моим представлением.Это будет работать аналогично традиционному бизнес-логике и уровню доступа к данным.

Однако на Mac большая часть моего чтения предполагает, что мои Модели и контроллеры должны разделить ответственность за заполнение Модели данными и предпринятьбизнес-логика и логика валидации.

Это кажется мне немного ограничительным и идет вразрез с принципом СУХО, поскольку мне может потребоваться повторить некоторые операции доступа к данным / бизнес-логики в других моделях, таким образом, приходится снова писать тот же бит кода.

Следовательно, возможно ли иметь набор классов или внешних библиотек, которые осуществляют логику доступа к бизнесу / данным (к базе данных SQLite), которую затем можно вызывать с любого контроллера?Поэтому Модель будет содержать только данные о себе и логике валидации?Или это противоречит основным принципам MVC и способам создания приложений на Mac?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Есть ли конкретная причина не использовать базовые данные в этом сценарии?Он оптимизирован для сохранения объектов в локальной файловой системе и из нее.Он также выполняет проверку на уровне модели, кэширование результатов, уведомления и т. Д.

0 голосов
/ 03 мая 2011

То, что вы описываете, звучит как хорошая идея для меня.Использование валидации и бизнес-логики в классах модели - это правильное использование MVC, а хранение данных в базе данных sqlite (с которой разговаривают классы модели) также является широко используемой методологией.

Я неконечно, если мы находимся на одной странице с терминологией: если вы используете этот дизайн, ваши классы, «которые выполняют логику доступа к бизнесу / данным (к базе данных sqlite), которую затем можно вызывать с любого контроллера», на самом деле будут модель классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...