Дипломная работа: Автоматизация процесса приема и идентификации поступившей продукции в АО "Кодекс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
59
- функции должны быть методами классов, все классы без указанного
родительского класса автоматически становятся наследниками класса Object;
- служебные классы, которыми пользуются компилятор и среда
выполнения: Object, Class, StringBuffer, String и так далее;
- необходимость явно создавать объекты оператором new;
- безымянные классы, определяемые в месте использования;
- сборка мусора, основанная на автоматическом подсчете ссылок;
- компиляция в байт-код; - отсутствие адресной арифметики; -
отсутствие множественного наследования; - избыточная информация о классах,
методах, аргументах генерируется компилятором и доступна приложению в
момент выполнения;
- действия над атомарными базовыми типами собраны в классы-
контейнеры;
- встроенная документация в комментариях исходного текста. Отличия
C#:
- перечислимые типы с ключевым словом enum;
- структуры, объявляемые с ключевым словом struct - не имеют
стартовых значений для полей, хранятся и передаются не по ссылке, а по
значению;
- виртуальные и перегружаемые методы обязаны иметь атрибуты virtual
и override;
- возможность определять в классе-наследнике поле или метод с таким
же именем, как и в классе-родителе, не замещая оригинал в таблице
виртуальных методов, с помощью атрибута new;
- передавать аргументы по ссылке с помощью ключевого слова ref;
- определять собственные действия для операторов аналогично C++; -
встроенный синтаксис для перебора элементов в коллекциях; -
поддержкасвойств: public int A { get { ... } set { ... } };
- передача и хранение ссылок на методы в переменных типа delegate
(также сохраняется ссылка на объект, применительно к которому должен быть
вызван метод);
- директивы условной компиляции - #if, #else, #endif.
60
- дополнительное структурирование исходного текста с помощью
#region;
- в одном файле может находиться несколько публичных классов;
- unsafe-методы для оптимизации с адресной арифметикой и
системными вызовами;
- генерация кода как для CLI, так и для x86; - поддерживает условную
компиляцию с использованием директив препроцессора; - полная интеграция со
стандартом COM.
Отличия Java:
- модификатор protected в описании, помимо доступа из классов-
потомков, разрешает доступ из всех классов, входящих в тот же пакет, что и
класс-владелец;
- все открытые методы, кроме статических, являются виртуальными, а
переопределить метод так, чтобы механизм виртуальности не включился,
невозможно;
- имеется возможность создавать объекты на стеке, но происходит это
автоматически без участия пользователя; - для того чтобы от класса нельзя было
наследоваться, его можно объявить финальным final, тем самым получив
частичный аналог конструкции struct(копирование по значению при этом
поддерживаться не будет все равно);
- не включает перегрузку операций во избежание злоупотреблений ею и
для поддержания простоты языка;
- каждый файл может содержать только один общедоступный класс,
причем Java требует, чтобы имя файла совпадало с именем этого класса, что
исключает путаницу в именах файлов и классов.
- платформонезависимость, за счет использования виртуальной машины;
- искодный код компилируется не под реальный процессор, как во всех
других языках - а под виртуальный. Для исполнения этого кода - необходимо
чтобы на компьютере была установлена среда исполнения. Выбор языка
программирования остановили на Java-технологии, потому что имеет много
особенностей, которые нужны для разработки данного программного продукта.
61
Выбрав язык программирования Java, появился вопрос выбора среды
разработки. На Java чаще всего пишут или в Eclipse, или в NetBeans. При
изучении данных сред разработки можно сказать, отличия в функциональности
между Netbeans и Eclipse нет, но предназначены они для разных целей, Eclipse
используется для написания вспомогательных компонент и мобильных
приложений, а NetBeans используют для создания целостных проектов с GUI.
NetBeans это решение для маленьких компаний и частных лиц, изначально
направлен именно на графические интерфейсы программ.
Eclipse в свою очередь изначально создавался для написания исходных
кодов, а не создания готовых компилированных программ, поэтому до сих пор и
не содержит полноценный компилятор.
Поэтому для разработки данного программного обеспечения выбор
остановим на NetBeans. Выбрав язык программирования Java и среду разработки
NetBeans, выбор технологии взаимодействия с базой данный сузился до JDO,
JDBC и Hibernate. Вначале опишем кратко данные технологии. Java Data Objects
(JDO) API является стандартной интерфейсной Java- абстракцией модели
сохранения состояния для непосредственного хранения экземпляров моделей
Java-домена в хранилище данных. JDO разработан как часть Java Specification
Request.
В отношении разработки приложений программист может писать код на
языке программирования Java с прозрачным доступом к основному хранилищу
данных без использования кода, специфичного для баз данных. Функции
технологии JDO:
- Мобильность: Приложения, написанные с использованием JDO API,
можно выполнять на различных реализациях без рекомпиляции или изменения
исходного кода.
- Независимость от баз данных: приложения, написанные с
использованием JDO API, не зависят от основной базы данных. - Концентрация
на модели домена: возможность сконцентрироваться на своей модели домена,
переложив заботы о сохранении состояния на реализацию JDO. - Высокая
производительность: передать подробности реализации сохранения состояния на
реализацию JDO, способную оптимизировать модели доступа к данным для
62
обеспечения оптимальной производительности. JDO - изначально он
разрабатывался как Java ORM standard, который может работать с любым data
source, однако особой популярности так и не приобрел.
Чем он отличается от Hibernate: синтаксис запросов не SQL-подобный, а
Java-подобный; после компиляции нужно запускать code enhancer, что добавляет
еще один шаг в цикле разработки, в то время как тот же Hibernate может
работать в обоих режимах, как с enhancer, так и без него.
Опять же одного стандарта, как правило, мало, поэтому часто
приходится использовать implementation-spefic механизмы. Интерфейс Java
Database Connectivity (JDBC) API был создан как ключевая часть платформ Java
2 Standard Edition (J2SE) и Java 2 Enterprise Edition (J2EE). Он представляет
собой основной механизм, основанный на стандартах, обеспечивающий
программам на языке Java доступ к реляционным базам данных.
Интерфейс JDBC API обладает высокой степенью гибкости и
предоставляет программистам непосредственный контроль над доступом к базам
данных и управление кэшем. В JDBC имеются функции получения из базы
данных автоматически создаваемых ключей, способность открывать несколько
наборов результатов, улучшенное подключение и организация пула
предложений. JDBC - в чистом виде используется не часто, потому как
приходится писать много кода, обычно реализовать проект с помощью JDBC
довольно сложно и громоздко.
Так как приходится писать SQL руками, вызывать его, работать с
ResultSet, самостоятельно реализовывать кеширование, маппинг классов на
реляционную модель, кеширование на нескольких уровнях.
Hibernate представляет собой эффективную, высокопроизводительную
объектно-реляционную среду с сохранением состояния и службу запросов.
Hibernate позволяет разрабатывать классы с сохранением состояния объектно-
ориентированной идиомы, включая ассоциации, наследование, полиморфизм,
композиции и наборы.
Среда Hibernate позволяет составлять запросы в собственном мобильном
SQL-расширении (HQL), а также в исходном SQL или с использованием
объектно-ориентированных критериев и примеров API. Такие среды, как Spring,
63
обеспечивают расширенную поддержку для Hibernate, поэтому Spring
предоставляет разработчикам способ декларативно объявлять транзакции
Hibernate.
В Hibernate XML-файлы (*.hbm.xml) используются для сопоставления
Java-классов таблицам и свойств Java Beans таблицам баз данных. Hibernate
представляет собой одну из широко распространенных и надежных сред с
сохранением состояния и является более зрелой в сравнении с такими
спецификациями, как JDO. Обе среды обеспечивают сохранение состояния для
непосредственного хранения своих экземпляров моделей доменов Java в
постоянных хранилищах.
Источник: https://baza.diplomsite.ru/previewfile/2110