Лучший “шаблон” для уровня доступа к данным к бизнес-объекту

Как упомянуто выше, вы можете записать свои журналы в mongoDb, а затем выполнить аналитику самостоятельно, проблема здесь заключается в том, что вам нужно пометить правильную классификацию и неправильную (например, TP, FP и т. Д.)

[112 ] Если вы хотите видеть часто задаваемые вопросы, вы можете попытаться объединить все похожие предложения (сначала наивно):

Рассчитать для каждого предложения сумму всех векторов слов и затем вычислите косинусное расстояние между ними, вот хорошее начало: https://stackoverflow.com/a/35092200/1340604

Кстати, AFAIK Rasa предлагает аналитический инструмент как часть их лицензия основного предприятия Rasa

16
задан user919426 6 August 2016 в 20:30
поделиться

4 ответа

Если конфигурация у Вас есть работы теперь, почему путаница с ним? Это не кажется на идентификацию каких-то конкретных потребностей или проблем с кодом как есть

, я уверен, что набор типов OO мог толпиться вокруг и предложить различные рефакторинги здесь так, чтобы корректные обязанности и роли уважали, и кто-то мог бы даже попробовать к рожку для обуви в шаблоне разработки или два. Но код, который Вы имеете теперь, прост и кажется, что не имеет никаких проблем - я сказал бы, оставляют его.

6
ответ дан 30 November 2019 в 22:50
поделиться

Я реализовал уровень DAL, в основном делая то, что NHibernate делает, но вручную. То, что делает NHibernate, создают Прокси-класс, который наследовался Вашему Объекту области (который должен иметь все его поля, отмеченные как виртуальные). Весь код доступа к данным входит в переопределения свойства, его довольно изящное на самом деле.

я упростил, это несколько при наличии моих Репозиториев заполняет сами простые свойства и только использование прокси для Ленивой загрузки. То, что я закончил, является рядом классов как это:

public class Product {
  public int Id {get; set;}
  public int CustomerId { get; set;}
  public virtual Customer Customer { get; set;}
}
public class ProductLazyLoadProxy {
  ICustomerRepository _customerRepository;
  public ProductLazyLoadProxy(ICustomerRepository customerRepository) {
    _customerRepository = customerRepository;
  }
  public override Customer {
    get {
      if(base.Customer == null)
        Customer = _customerRepository.Get(CustomerId);
      return base.Customer
    }
    set { base.Customer = value; }
  }
}
public class ProductRepository : IProductRepository {
  public Product Get(int id) {
    var dr = GetDataReaderForId(id);
    return new ProductLazyLoadProxy() {
      Id = Convert.ToInt(dr["id"]),
      CustomerId = Convert.ToInt(dr["customer_id"]),
    }
  }
}

, Но после записи приблизительно 20 из них я просто сдался и изучил NHibernate с Linq2NHibernate для запросов и FluentNHibernate для конфигурации в наше время, контрольно-пропускные пункты ниже чем когда-либо.

5
ответ дан 30 November 2019 в 22:50
поделиться

Скорее всего, Ваше приложение имеет свою доменную логическую установку в сценарии транзакции . Для реализаций.NET, которые используют сценарий транзакции, который Martin Fowler рекомендует использованию шлюз данных таблицы шаблон..NET оказывает хорошую поддержку для этого шаблона, потому что шаблон шлюза данных таблицы является большим с официальный набор документов , который Microsoft реализует с ее классами Типа набора данных.

инструменты Various в среде Visual Studio должны повысить Вашу производительность. То, что DataSets может легко быть связан с данными к различным средствам управления (как DataGridView) делает его хорошим выбором для управляемых данными приложений.

, Если Ваша бизнес-логика более сложна, чем несколько проверок , модель предметной области становится хорошим вариантом. Действительно обратите внимание, что модель предметной области идет с совершенно другим набором требований доступа к данным!

2
ответ дан 30 November 2019 в 22:50
поделиться

Это может быть слишком радикальным для Вас и действительно не решает вопрос, но как насчет того, чтобы полностью фрагментировать Ваш слой данных и выбрать ORM? Вы сохраните большое дублирование кода, которое принесет пребывание в течение приблизительно одной недели на DAL.

то, Что в стороне, шаблон Вы используете, напоминает шаблон репозитория, вид. Я сказал бы, что Ваши опции

  • объект службы А в Вашем почтовом классе - скажем EmailService - инстанцированы в конструкторе или свойстве. Полученный доступ через экземпляр, такой как электронная почта. Сервис. GetById (идентификатор)
  • статический метод для электронной почты, как электронная почта. GetById (идентификатор), который является аналогичным подходом
  • А абсолютно отдельный статический класс, который является в основном faГ§ade классом, EmailManager, например, со статическими методами как EmailManager. GetById (интервал)
  • шаблон ActiveRecord, где Вы имеете дело с экземпляром, как электронная почта. Сохраните () и электронная почта. GetById ()
2
ответ дан 30 November 2019 в 22:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: