LINUX.ORG.RU

История изменений

Исправление aist1, (текущая версия) :

Я потом смогу продемонстрировать как это выглядит на практике. Грубо говоря, мы выделяем схемы (структуры) данных как отдельный уровень и работаем именно с ними. Это DoD и это хорошо для достижения высокого уровня утилизации железа. Но над схемами данных мы создаем легковесные объекты-обертки в момент, когда они непосредственно используются кодом.

Например, объект типа Decimal(10,4) может хранить параметры типа (10,4) вместе с, собственно, реперезентацией самого числа. И это то, что мы имеем в случае объектов класса BigDecimal в Java. А может хранить параметры отдельно и независимо от самого числа. А в DecimalView оно будет собираться в тот момент, когда нам нужно такое число обработать.

Такие обертки в С++ получаются достаточно легковесные, и в Java, в принципе, тоже. Presto так работает. Кстати, Presto — неплохой пример DoD, реализованный средствами «Java на максималках». Для Decimal Presto хранит параметры типа (10, 4) в метаданных колонки, а цифры числа — в ячейках таблицы. В момент обработки оно всё «собирается вместе» в рамках псевдо-объектного интерфейса Decimals.

Короче, в модели OOP over DoD мы решаем тут системную проблему дизайна ООЯП, что репрезентация объектов в памяти жестко впилена в компилятор и не поддается модицикациям.

Исходная версия aist1, :

Я потом смогу продемонстрировать как это выглядит на практике. Грубо говоря, мы выделяем схемы (структуры) данных как отдельный уровень и работаем именно с ними. Это DoD и это хорошо для достижения высокого уровня утилизации железа. Но над схемами данных мы создаем легковесные объекты-обертки в момент, когда они непосредственно используются кодом.

Например, объект типа Decimal(10,4) может хранить параметры типа (10,4) вместе с, собственно, реперезентацией самого числа. И это то, что мы имеем в случае объектов класса BigDecimal в Java. А может хранить параметры отдельно и независимо от самого числа. А в DecimalView оно будет собираться в тот момент, когда нам нужно такое число обработать.

Такие обертки в С++ получаются достаточно легковесные, и в Java, в принципе, тоже. Presto так работает. Кстати, Presto — неплохой пример DoD, реализованный средствами «Java на максималках».

Короче, в модели OOP over DoD мы решаем тут системную проблему дизайна ООЯП, что репрезентация объектов в памяти жестко впилена в компилятор и не поддается модицикациям.