Новини високих технологій
» » Java Pattern: опис, можливості, приклади

Java Pattern: опис, можливості, приклади

7-03-2019, 11:19
15 196
Розширення умов завдання може вимагати повторення однотипних дій у визначеному порядку. Такі дії допомагають виконувати програмістам шаблони, або Java Pattern (JP), які автоматизують створення об'єктів і їх відносин в робочій області користувача. Команди можуть використовувати JP, щоб зменшити кількість помилок, спростити моделювання і підвищити продуктивність. Дизайнери створюють JP, використовуючи інформацію, визначений з існуючих еталонних реалізацій і прикладів рішень.

Структура шаблону проектування

Команди розробників рішень встановлюють Java Design Patterns, використовуючи майстра, застосовують шаблони в робочому просторі. Ці майстри, що відповідають кращим практикам, що знижують потребу в кодуванні і складної настройки. Типова структура JP: Модель даних включає в себе всі сутності і елементи даних, які реалізують шаблон, в якому ці дані організовані в робочій області. Вона забезпечує очікуваний користувальницький введення і застосовує його до робочого простору, а також має вбудовану довідкову систему, доступну, коли користувач запускає дизайн Java Pattern. Користувальницький інтерфейс. Розробники взаємодіють з шаблонами проектування з допомогою майстри проектування JP. Він збирає інформацію і організовує її на різних сторінках майстра, доповнюючи підказками або вбудованою довідкою, по вимозі користувача. Процесор реалізації. Коли користувач завершує роботу з майстром Java Pattern проектування і натискає кнопку "Готово", шаблон дизайну застосовує введені користувачем дані до сутностей і елементів, визначеним у даному проекті. Після чого JP генерує і організовує об'єкти і елементи даних у робочій області.

Послідовність циклу розробки

Життєвий цикл шаблону проектування починається з ідентифікації та ізоляції самого JP. Працюючи з еталонною реалізацією, дизайнери ідентифікують повторюваний макет, який включає ресурси і відносини ресурсів з робочим простором. Завдання в життєвому циклі Java Pattern проектування виконуються двома різними учасниками, дизайнером, який створює та поширює макет, а також оператором, встановлює зразки проектування і запускає JP для полегшення розробки рішення.

Послідовність дизайнерської обробки: Оцінюються загальні задачі моделювання і ключові ресурси в довідкових реалізаціях, прикладах рішень і передових практик і встановлюють, які повторювані завдання можна автоматизувати JP. Розробляють JP з використанням виявлених ресурсів в якості ключових компонентів. Тестують отримані шаблони проектування, запустивши їх в середовищі Design Studio. Включають JP у проекти плагінів, які пов'язують з проектом об'єктів і з сайтом оновлень. Встановлюють функції в залежності від їх ролі і цілей. Запускають шаблони проектування, щоб завершити дизайнерське рішення.

Файл pattern.xml

Кожен шаблон дизайну має файл «pattern.xml», який визначає вміст моделі JP. На додаток до високорівневих атрибутів, встановленим для файлу, наприклад, до простору імен, ідентифікатор шаблону і атрибутів імені. У розділі "XML-схема" це файл з ім'ям DesignPattern.xsd в папці схеми, доступної в програмному пакеті Design Studio. Розробник може вказати, чи є шаблон проектування основним або другорядним випуском або частиною випуску пакета оновлень за номером версії шаблону проектування.

На сторінці «Введення» в майстрі знаходиться інформація, яка описує, як можна використовувати JP. Розділи шаблону проектування: Дійсні цільові проекти, в яких зберігаються ресурси при застосуванні шаблону проектування. Заповнювачі представляють інформацію, яка повинна бути введена користувачем, застосовують JP. Сторінки, які відображаються в майстрі. Токени JP організовані у вигляді сторінок майстрі, де кожна сторінка є їх групою. Можна визначити будь-яку кількість груп токенів. Список ресурсів, включених в JP, який копіює ці ресурси в робочий простір користувача. Інформація за замовчуванням, надається майстру JP, для автоматичного заповнення імен токенів.

Підхід Java до дизайну

Шаблони проектування вже визначені і надають стандартний галузевий підхід для вирішення повторюваної проблеми, тому це економить час, якщо він розумно використовується. Використання шаблонів проектування сприяє повторному використанню, що призводить до створення більш надійного і легко обслуговується коду. Це допомагає знизити сукупну вартість володіння (TCO) програмного продукту і полегшує розуміння і налагодження коду. Це призводить до більш швидкого розвитку, і нові члени команди легко навчаються новим програмам. Шаблони проектування Java поділяються на три категорії - дизайну для створення, структури і поведінки. JP креационного проектування надають рішення для створення об'єкта найкращим чином для конкретних ситуацій.
Шаблон Singleton обмежує створення екземплярів класу і гарантує, що в віртуальній машині Java існує лише один екземпляр класу. Здається, що це дуже простий JP, але коли справа доходить до реалізації, у нього з'являється багато проблем. Реалізація Singleton шаблону завжди була спірною темою серед розробників і однією з найбільш обговорюваних тем JP проектування.

Фабричний зразок

Java Factory Pattern використовується коли є суперклас з кількома підкласами. Цей шаблон бере на себе відповідальність за створення екземпляра класу від клієнтської програми до фабричного класу. Можна застосувати шаблон Singleton до класу Factory або зробити метод фабрики статичним. Це один з найбільш широко використовуваних JP. Абстрактний Фабричний зразок (Abstract Factory) схожий на Фабричний зразок, який повертає різні підкласи на основі наданого введення, і використовує оператор «if-else» або «switch» для досягнення цієї мети. В шаблоні Abstract Factory позбавилися від блоку «if-else», залишили клас фабрики для кожного підкласу, після чого Abstract Factory повертає підклас на основі вхідного класу фабрики.
JP Будівельник був введений для вирішення деяких проблем Factory і Abstract Factory, коли Object містить багато атрибутів. Builder Pattern Java усуває проблему великої кількості необов'язкових параметрів і неузгоджених дій, надаючи спосіб покрокового побудови об'єкта і метод, що повертає об'єкт.

Структурні конструкції

Шаблон проектування адаптера є одним з JP структурного проектування і використовується для спільної роботи двох не пов'язаних між собою інтерфейсів. Об'єкт, який приєднується до цих непов'язаним інтерфейсам, називається адаптером. Як приклад з реального життя можна розглядати мобільний зарядний пристрій в якості адаптера, оскільки для зарядки акумулятора потрібно 3 В, а звичайна розетка видає напругу 120 В (США) або 220 В (Росія). Таким чином, мобільний зарядний пристрій працює в якості адаптера між мобільного зарядної розеткою і мережевий розеткою. JP Композитний Візерунок є одним з структурних шаблонів проектування і використовується, коли потрібно представляти ієрархію частини – цілого, створити структуру таким чином, щоб об'єкти в ній оброблялися однаково. Діаграма - це приклад з реального життя, структура, що складається з таких об'єктів, як кола, лінії, трикутник і інших геометричних фігур. Коли програміст заповнює малюнок кольором, скажімо, червоним, той же колір також застосовується до об'єктів JP. Тут малюнок складається з різних частин, і всі вони мають однакові операції.

Проксі шаблон

Метою шаблону проксі є «Надання сурогату або заповнювача для іншого об'єкта з метою контролю доступу до нього». Саме визначення дуже ясно, і JP проксі використовується коли потрібно забезпечити контрольований доступ до функціональності.

Припустимо, є клас, який може виконувати деякі команди в системі, але якщо треба передати цю програму клієнтського додатка, у неї можуть бути серйозні проблеми. Клієнтська програма може видати команду на видалення деяких системних файлів або змінити деякі параметри, які не потрібні.
Шаблон проектування Flyweight використовується коли потрібно створити багато об'єктів класу. Оскільки кожен об'єкт споживає простір пам'яті, що може мати вирішальне значення для пристроїв з невеликим об'ємом пам'яті, таких як мобільні пристрої або вбудовані системи, можна застосовувати JP з спрощеним дизайном, щоб зменшити навантаження на пам'ять шляхом спільного використання об'єктів. Реалізація пулу рядків в Java є одним з кращих прикладів реалізації шаблонів Flyweight. JP Фасаду (Facade) використовується, щоб допомогти клієнтським програмам легко взаємодіяти з системою. Припустимо, є додаток з набором інтерфейсів для використання бази даних MySql/Oracle з метою створення звітів різних типів, таких як звіт HTML, звіт PDF і інші. Таким чином, у користувача буде інший набір інтерфейсів для роботи з різними типами бази даних.
Клієнтський додаток може використовувати ці інтерфейси для отримання необхідного з'єднання з базою даних і створення звітів. Але коли складність зростає або імена поведінки інтерфейсу збивають з пантелику, клієнтського додатку буде важко керувати ним. Таким чином, застосовують шаблон Facade і надають інтерфейс-оболонку поверх існуючого, щоб допомогти клієнтського додатку.

Ієрархії інтерфейсів

Коли у користувача є ієрархії інтерфейсів в обох інтерфейсах, а також реалізації, тоді JP "Міст" використовується, щоб відокремити інтерфейси від реалізації і приховати деталі реалізації від клієнтських програм. Як і шаблон адаптера, це один з JP структурного проектування. Реалізація JP "Мосту" слідує ідеї про перевагу Composition, а не наслідування. JP "Decorator" використовується для зміни функціональності об'єкта під час виконання. У той же час інші екземпляри того ж класу не будуть порушені цим, тому окремий об'єкт отримує змінену поведінку. JP "Decorator" є одним з структурних шаблонів проектування і використовує для реалізації абстрактних класів або інтерфейсів з композицією. Користувачі використовують спадкування чи композицію для розширення поведінки об'єкта, але це робиться під час компіляції і застосовно до всіх екземплярів класу. Можна додати якісь нові функціональні можливості під час виконання шаблону.

Регулярні вирази Java Regex Pattern

Програми часто вимагають обробки тексту для таких функцій, як пошук слів, перевірка електронної пошти або цілісність документа XML. Це часто включає в себе зіставлення із зразком. Такі мови, як Perl, sed або awk, покращують зіставлення шаблона з допомогою регулярних виразів, рядків символів, які визначають шаблони, які використовуються для пошуку відповідного тексту. Для зіставлення шаблона з використанням мови програмування Java потрібно використання StringTokenizer класу з багатьма charAt методами підрядка для читання символів або токенів для обробки тексту. Це часто призводить до складного або "брудного" кодом. Для програмістів краще використовувати регулярні вирази з java.util.regex пакетом, застосовуючи такі поширені сценарії в якості прикладів: Проста заміна слів. Перевірка електронної пошти. Видалення керуючих символів з файлу. Пошук файлів. Для того щоб скомпілювати код в цих прикладах і використовувати регулярні вирази в додатках, буде потрібно встановити J2SE версії 1.4.

Реалізація зв'язки команди

Шаблон команди використовується для реалізації втрати зв'язку в моделі "запит-відповідь". У ньому запит відправляється викликає, а invoker передає його инкапсулированному об'єкту команди. Командний об'єкт передає запит до відповідного методу Receiver для виконання певної дії. Припустимо, потрібно надати утиліту файлової системи з методами для відкриття, запису та закриття файлу, і вона повинна підтримувати декілька операційних систем, таких як Windows і Unix. Для реалізації утиліти File System, перш за все, потрібно створити класи-одержувачі, які фактично будуть виконувати всю роботу. Оскільки кодування виконується в термінах Java-інтерфейсів, що може бути інтерфейс FileSystemReceiver і його класи реалізації для різних різновидів операційної системи, таких як Windows, Unix, Solaris і інші. JP "Перекладач" використовується для визначення граматичного представлення мови і надає інтерпретатора для роботи з граматикою. Найкращий приклад цього шаблону - компілятор "Джава", який інтерпретує вихідний код "Джава" в байтовий, зрозумілий для JVM. Google Translator також є Example Patterns Java інтерпретатора, де введення може бути на одній мові, а висновок – на іншому. JP "Відвідувач" використовується, коли потрібно виконати операцію над групою однотипних об'єктів. За допомогою його можна перемістити операційну логіку з об'єктів в інший клас. Наприклад, кошик для покупок, в яку можна додати різні типи товарів, коли натискається кнопка «Оформити замовлення», то обчислюється загальна сума, що підлягає оплаті.

Приклад Java Util Regex Pattern

Компіляція з сценарію оболонки Unix/Linux застосовується, коли виникають обставини, коли в розробника немає «Ant» або «Ant-based» проекту для компіляції користувальницьких "Джава"-програм. У таких випадках зазвичай використовують сценарій оболонки Linux для компіляції своїх класів Java. Дуже хороше застосування, яку скрипт робить для користувача - це динамічне включення всіх файлів Jar, які потрібні, шлях до класів. Таким чином, Jar-файли знаходяться там, їх дуже проста компіляція з командного рядка. Програма робить два припущення: Користувач знаходиться в каталозі над рівнем з ім'ям "src", яка містить java файли. Користувач знаходиться в каталозі над рівнем з ім'ям "бібліотека", і всі файли Jar», які потрібні програмі, знаходяться в цьому каталозі. Скрипт Pattern Compile Java.
Регулярні вирази в "Джава" Util – це використання класів Pattern і Matcher. Можна використовувати метод String.matches () для виконання зіставлення. В деяких випадках потрібно використовувати трохи більш багатослівний спосіб проведення сеансу, але той, який в кінцевому підсумку дає більше гнучкості і може поліпшити продуктивність. Зокрема, використовують два класи пакету java.util.regex: Pattern і Matcher. Фото представлені нижче.
Процедура Java Regex Pattern виглядає наступним чином: Компілюють вираження в об'єкт "Патерн". Викликають статичний метод Pattern.compile (), передаючи вираз. Цей метод повертає об'єкт Pattern. Виконання цього об'єкта є внутрішнім поданням шаблону у формі, яка робить його ефективним для виконання зіставлень. Всякий раз, коли потрібно виконати зіставлення, створюють об'єкт Matcher. Для того щоб перевірити, чи відповідає конкретна рядок шаблону, накладають узгодження() методу на шаблон об'єкта, передаючи в рядку. Викликають збігу Java Pattern Matcher, який повертає логічне значення, яке вказує, чи відповідає рядок, передана метод (), регулярному виразу. Таким чином, шаблони проектування дуже популярні серед розробників програмного забезпечення, оскільки вони представляють добре описане рішення типової задачі. Це помічники, які автоматизують складні повторювані задачі і дозволяють членам команди з різними рівнями підготовки виконувати їх.
Цікаво по темі
Патерн Адаптер: опис, функції та можливості, поради по роботі
Патерн Адаптер: опис, функції та можливості, поради по роботі
Адаптер - це структурний шаблон проектування, який використовується для організації та реалізації методів об'єкта, який можна модифікувати за коштами
Системи програмування: приклади, опис, особливості
Системи програмування: приклади, опис, особливості
Системи програмування забезпечують платформу для розробки прикладного програмного забезпечення і безпосередньо взаємодіють з комп'ютерним
Як здійснити запис у файл Java
Як здійснити запис у файл Java
При написанні програм на мові Java рано чи пізно постане необхідність читання і запису інформації в файл. Для цього в мові передбачені наступні
Регулярні вирази Notepad: опис, заміна та приклади
Регулярні вирази Notepad: опис, заміна та приклади
Регулярний вираз Notepad - теорія формальної мови, послідовність символів, що визначають шаблон пошуку. Зазвичай цей шаблон потім використовується
Елементи об'єктної моделі Java: абстрактний клас, інтерфейс
Елементи об'єктної моделі Java: абстрактний клас, інтерфейс
Головна думка абстрактного класу полягає в наступному тезі: іноді потрібні не готові класи, а в «сирому» вигляді. Такі заготовки не можна прямо