Каково различие между бизнес-классом и доменным классом? Что предназначено персистентными классами?

IDynamicObject, связующее звено позади dynamic, позволяет интерпретацию вызова во времени выполнения.

Это интересно для по сути невведенных сценариев, таких как REST, XML, COM, DataSet, динамические языки и многие другие. Это - реализация динамическая отправка созданный сверху Динамическое время выполнения языка (DLR) .

Вместо громоздкой отражательной семантики, Вы точка в [1 110] переменные, объявленные как dynamic. Предположите работать с объектами JavaScript от Silverlight:

dynamic obj = GetScriptObject();

HtmlPage.Window.Alert(obj.someProperty);

Весь синтаксис C# поддерживается (я верю):

HtmlPage.Window.Alert(obj.someMethod() + obj.items[0]);

само Отражение выглядит намного более чистым:

public void WriteSomePropertyValue(object target)
{
    Console.WriteLine((target as dynamic).SomeProperty);
}

public void WriteSomeMethodValue(object target, int arg1, string arg2)
{
    Console.WriteLine((target as dynamic).SomeMethod(arg1, arg2));
}

dynamic другой инструмент в инструментарии. Это не изменяет помехи по сравнению с динамическими дебатами, это просто упрощает трение.

22
задан jitter 7 November 2009 в 13:24
поделиться

5 ответов

Доменный класс - это класс из модели домена , который Мартин Фаулер описывает следующим образом в Шаблоны архитектуры корпоративных приложений :

Объектная модель домена, которая включает в себя как поведение, так и данные.

alt text

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

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

Наконец, постоянный класс - это класс, который может быть ... постоянным, что означает передачу представления информации в памяти в физическое хранилище, которое будет сохраняться вне JVM. Часто постоянство реализуется с использованием базы данных (но это не единственное решение, см., Например, распространенность объектов ). Типичные операции сохранения включают создание, чтение, обновление и удаление, которые известны как операции CRUD. Объекты домена очень часто являются постоянными i.

32
ответ дан 29 November 2019 в 03:57
поделиться

A "domain" class is one that models your data. It is typically used to map data from your data store (e.g. a database) to an in-memory object. A business class is one that your application works with. It can be the same as the domain class, and usually performs some sort of business logic or processing.

Persistence refers to the ability of the object state to be saved to some data store (e.g. xml, a text file, or more commonly, a database). So the state of this kind of object "persists" whether the application is running or not.

It sounds to me like you're curious about Object/Relational Mapping. I recommend reading this wikipedia article to get started.

20
ответ дан 29 November 2019 в 03:57
поделиться

Термины Бизнес и Домен часто используются как синонимы. Лично я предпочитаю термины Модель домена , Объект домена и т. Д., Поскольку они не связаны с бизнесом (чем бы это ни было).

Например, в Safewhere мы работаем в основном с идентификацией и авторизацией на основе утверждений. Концепции, которые мы моделируем, имеют очень мало общего с традиционным «бизнесом», поэтому в таких случаях я думаю, что Модель предметной области является более подходящим термином.

4
ответ дан 29 November 2019 в 03:57
поделиться

Бизнес-классы - это классы, которые разработаны и используются для конкретного проекта и вряд ли могут быть повторно использованы в другом проекте.

Классы домена - это классы, разработанные и используемые для определенного домена который может использоваться несколькими проектами, которые делают аналогичные вещи.

Например, классы JDBC - это классы домена для доступа к базе данных. Классы Swing - это классы предметной области для построения и управления графическим интерфейсом. Форма Form1 , которая содержит набор компонентов, используемых для отображения сообщения «Hello World», относится к бизнес-классу.

-3
ответ дан 29 November 2019 в 03:57
поделиться

A business class provides domain specific logic.

A domain class is an entity representing part of the domain.

A persistent class, or better, a persistent instance, has the same data after a server reboot (the data is typically stored on a database of some kind).

Let's take a banking transaction as an example. You'd have a persistent domain class Account. My Account (an instance) would have a field Balance with value 1000.

The transaction business logic which handles the debit is something like AccountDebit and has as method debitAccount(Account account, int amount), and as business logic

int balance = account.getBalance();
if (balance < amount) {
   throw exception("You're too poor");
}
balance = balance - amount;
account.setBalance(balance);
account.commit(); // save the values to persistent store

And I do know that money is typically not an int, and that the debited amount is normally credited to someone else :)

4
ответ дан 29 November 2019 в 03:57
поделиться
Другие вопросы по тегам:

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