Съдържание
- Структура на модела за проектиране
- Последователност на цикъла на разработване
- Модел на файла.xml
- Подход за проектиране на Java
- Фабричен модел
- Структурни проекти
- Модел на прокси
- Йерархии от интерфейси
- Регулярни изрази на Java Regex Pattern
- Осъществяване на комуникация с командването
- Пример Java Util Regex Pattern
Разширяващите се условия на задачата могат да изискват повтаряне на един и същи вид действия в определен ред. Такива дейности помагат на програмистите да изпълняват шаблони, или Java Patterns (JP), които автоматизират създаването на обекти и техните връзки в работното пространство на потребителя. Екипите могат да използват СП, за да намалят грешките, да опростят симулацията и да подобрят производителността. Дизайнерите създават СП, като използват информация, идентифицирана от съществуващи референтни реализации и примерни решения.
Структура на модела за проектиране

Екипи за проектиране на решения инсталиране на Java Модели за проектиране, използване на съветници, прилагане на моделите в работното пространство. Тези съветници за най-добри практики намаляват необходимостта от кодиране и сложна персонализация.
Структура на модела JP:
- Моделът на данните включва всички същности и елементи на данните, които прилагат шаблон, в който данните са организирани в работно пространство. Тя осигурява очакваните входни данни от потребителя и ги прилага към работното пространство, като има вградена система за помощ, която е достъпна, когато потребителят стартира проектирането на Java Pattern.
- Потребителски интерфейс. Разработчиците взаимодействат с шаблоните за проектиране с помощта на съветника за проектиране JP. Той събира информация и я организира в различни страници на съветника, допълнени с подсказки или вградена помощ, според нуждите на потребителя.
- Процесор за изпълнение. Когато потребителят завърши съветника за проектиране на Java шаблони и щракне върху "Готово", Шаблонът за проектиране прилага данните, въведени от потребителя, към същностите и елементите, определени в даден шаблон за проектиране. След това СП генерира и организира обектите и елементите на данни в работното пространство.
Последователност на цикъла на разработване

Жизненият цикъл на шаблона за проектиране започва с идентифицирането и изолирането на самото СП. Работейки с референтна реализация, дизайнерите определят повтарящо се оформление, което включва ресурси и връзки на ресурсите с работното пространство. Задачите в жизнения цикъл на проектиране на шаблони на Java се изпълняват от двама различни участници - проектант, който създава и разпространява макета, и оператор, който създава шаблоните за проектиране и изпълнява JP, за да улесни разработването на решения.
Проектиране на последователността на обработка:
- Оценете общите задачи за моделиране и ключовите ресурси в референтните реализации, примерните решения и най-добрите практики и установете кои повтарящи се задачи могат да бъдат автоматизирани в JP.
- Разработване на СП с използване на идентифицираните ресурси като основни компоненти.
- Тествайте получените шаблони за проектиране, като ги стартирате в средата на Design Studio.
- Включване на СП в проектите на плъгините, които съдържат връзка към проекта на обекта и към сайта за актуализация.
- Определяне на функциите в зависимост от тяхната роля и цел.
- Изпълнение на шаблоните за проектиране за завършване на проектното решение.
Модел на файла.xml

Всеки шаблон за проектиране има файл "шаблон".xml", който определя съдържанието на модела JP. В допълнение към атрибутите от високо ниво, зададени за файла, напр Пространство от имена, атрибути за идентификатор на шаблона и име. В "Схема на XML" е файл с име DesignPattern.xsd в папката за схеми, налична в софтуерния пакет Design Studio. Разработчикът може да уточни дали шаблонът за проектиране е основна или второстепенна версия или част от версия на пакет за обновяване чрез номера на версията на шаблона за проектиране.
Страницата "Въведение" на съветника съдържа информация, която описва как може да се използва JP. Секции на шаблона за дизайн:
- Действителни целеви проекти, в които се съхраняват ресурсите, когато се прилага шаблонът за проектиране.
- Пълнителите представляват информацията, която трябва да бъде въведена от потребителя, прилагащ JP.
- Страници, които се показват в съветника. Токените JP са организирани в като страници в съветника, където всяка страница е тяхната група. Можете да дефинирате произволен брой групи жетони.
- Списък на ресурсите, включени в JP, който копира тези ресурси в работното пространство на потребителя.
- Информация по подразбиране, предоставяна на съветника на JP, за автоматично попълване на имена на токени.
Подход за проектиране на Java
Шаблоните за проектиране вече са дефинирани и предоставят стандартен подход за решаване на повтарящ се проблем, така че спестяват време, ако се използват разумно. Използването на шаблони за проектиране насърчава повторното използване, което води до по-стабилен и лесен за поддържане код. Това спомага за намаляване на общата цена на притежание (TCO) на софтуерния продукт и улеснява разбирането и отстраняването на грешки в кода. Това води до по-бързо разработване и новите членове на екипа могат лесно да усвояват нови програми.
Шаблоните за проектиране на Java се разделят на три категории - проектиране за създаване, структура и поведение. Творчески дизайн JP предоставят решение за създаване на обект по най-добрия възможен начин за конкретни ситуации.
Шаблонът Singleton ограничава създаването на екземпляри на класове и гарантира, че в Виртуална машина Java има само един екземпляр на класа. Изглежда много просто, но когато се стигне до прилагането му, се появяват много проблеми. Имплементирането на шаблони Singleton винаги е било спорна тема сред разработчиците и една от най-обсъжданите теми в дизайна на JP.
Фабричен модел

Java Factory Pattern се използва, когато има суперклас с няколко подкласа. Този шаблон прехвърля отговорността за създаване на инстанция на класа от клиентската програма на фабричния клас. Можете да приложите шаблона Singleton към клас Factory или да направите метода на фабриката статичен. Това е един от най-широко използваните JP.
Абстрактната фабрика е подобна на Abstract Factory, която връща различни подкласове въз основа на предоставените входни данни и използва "if-else" или "switch", за да постигне това. Шаблонът Abstract Factory премахва блока "if-else", оставя фабричен клас за всеки подклас, след което Abstract Factory връща подклас въз основа на входния фабричен клас.
JP Builder е въведен, за да реши някои проблеми с Factory и Abstract Factory, когато обектът съдържа много атрибути. Шаблонът за изграждане Java елиминира проблема с големия брой незадължителни параметри и некоординирани действия, като предоставя начин за изграждане на обект стъпка по стъпка и метод, който връща крайния обект.
Структурни проекти
Шаблонът за проектиране на адаптер е един от структурните шаблони на JP и се използва за съвместна работа на два несвързани интерфейса. Обектът, който се свързва с тези несвързани интерфейси, се нарича адаптер. Като пример от реалния живот, разгледайте мобилен зарядно устройство като адаптер, защото за зареждане на батерията Необходими са 3 V, докато обикновеният контакт е с напрежение 120 V (САЩ) или 220 V (Русия). По този начин зарядното устройство за мобилни устройства работи като адаптер между гнездото за зареждане на мобилното устройство и мрежовия контакт.
JP Composite Pattern е един от структурните шаблони за проектиране и се използва, когато искате да представите йерархия част-цяло, да създадете структура, така че обектите в нея да се третират еднакво.
Диаграмата е пример от реалния живот - структура, състояща се от обекти като кръг, линии, триъгълник и други геометрични фигури. Когато програмистът запълни фигура с цвят, например червен, същият цвят се прилага и към обектите в JP. Моделът тук е съставен от различни части и всички те имат еднакви операции.
Модел на прокси
Целта на шаблона на пълномощното е "Да се предостави заместител или заместител на друг обект, за да се контролира достъпът до него". Самата дефиниция е много ясна, а проксито JP се използва, когато искате да осигурите контролиран достъп до функционалност.
Да предположим, че има клас, който може да изпълнява някои команди в системата, но ако трябва да предаде тази програма на клиентско приложение, може да има сериозни проблеми. Клиентската програма може да издаде команда за изтриване на някои системни файлове или да промени някои параметри, които не са необходими.

Шаблонът за проектиране Flyweight се използва, когато е необходимо да се създадат много обекти от класове. Тъй като всеки обект заема място в паметта, което може да е от решаващо значение за устройства с малко памет, като например мобилни устройства или вградени системи, може да се използва опростен дизайн на СП, за да се намали отпечатъкът от паметта чрез споделяне на обекти. Реализацията на басейна от низове в Java е един от най-добрите примери за реализация на шаблона Flyweight.
JP Facade се използва, за да помогне на клиентските приложения да взаимодействат лесно със системата. Да предположим, че има приложение с набор от интерфейси за използване на база данни MySql/Oracle за създаване на различни видове отчети, като например HTML отчет, PDF отчет и други. По този начин потребителят ще разполага с различен набор от интерфейси да работите с с различни видове бази данни.
Клиентското приложение може да използва тези интерфейси, за да получи необходимата връзка с базата данни и да генерира отчети. Но когато сложността се увеличи или имената на поведението на интерфейса са объркващи, клиентското приложение ще се затрудни да ги управлява. Така че, приложете шаблона Facade и осигурете интерфейс върху съществуващия, за да помогнете на клиентското приложение.
Йерархии от интерфейси
Когато потребителят разполага с йерархии от интерфейси както в интерфейси, така и в имплементации, тогава JP "Мост" се използва за отделяне на интерфейсите от имплементацията и скриване на подробностите за имплементацията от клиентските програми. Подобно на шаблона за адаптер, това е един от JP на структурния дизайн. Изпълнение на JP "мост" следва идеята за предпочитание на състава пред наследяването.
JP "Декоратор" се използва за промяна на функционалността на обекта по време на изпълнение. В същото време това няма да се отрази на други екземпляри на същия клас, така че индивидуалният обект получава модифицирано поведение. JP "Декоратор" е един от структурните шаблони за проектиране и се използва за реализиране на абстрактни класове или интерфейси с композиция.
Потребителите използват наследяване или композиция, за да разширят поведението на обекта, но това се прави по време на компилиране и се отнася за всички екземпляри на класа. Не може да се добавят нови функционалности по време на изпълнение към модела.
Регулярни изрази на Java Regex Pattern
Приложенията често изискват обработка на текст за функции като търсене на думи, проверка на имейли или цялост на XML документи. Това често включва съвпадение на шаблони. Езици като Perl, sed или awk подобряват съпоставянето на шаблони, като използват регулярни изрази - символни низове, които определят шаблоните, използвани за търсене на съответния текст. За съвпадение на шаблони с помощта на език за програмиране Необходим клас StringTokenizer в Java с много методи charAt substring за четене на символи или токени за обработка на текст. Това често води до сложни или "мръсен" код.
За програмистите е най-добре да използват регулярни изрази с java.помощ.Следните общи сценарии са използвани като примери:
- Просто заместване на думи.
- Проверка на имейл.
- Премахване на контролните символи от файла.
- Намиране на файлове.
За да компилирате кода в тези примери и да използвате регулярни изрази в приложенията си, трябва да инсталирате J2SE версия 1.4.
Осъществяване на комуникация с командването
За реализиране на загубата на комуникация в модела се използва шаблонът за команди "заявка-отговор". След това заявката се изпраща на извикващия и той я предава на капсулирания обект на командата. Обектът на командата подава заявка към съответния метод на приемника за извършване на определено действие.
Да предположим, че трябва да предоставите помощна програма за файловата система с методи за отваряне, запис и затваряне на файл, която трябва да поддържа множество операционни системи, като Windows и Unix. За да реализирате помощната програма за файловата система, първо трябва да създадете класове на получателите, които всъщност извършват цялата работа. Тъй като кодирането се извършва с помощта на интерфейси на Java, може да има интерфейс FileSystemReceiver и класове за неговата реализация за различни разновидности на операционна система, като Windows, Unix, Solaris и др.
JP "Преводач" се използва за дефиниране на граматическото представяне на езика и за осигуряване на интерпретатор за работа с граматиката. Най-добрият пример за този модел е компилаторът "Java", която интерпретира изходния код на "Java" до байтове, разбираеми за JVM. Преводачът на Google също е интерпретатор на Java, при който входът може да бъде на един език, а изходът - на друг.
JP "Посетител" се използва, когато трябва да се извърши операция върху група подобни обекти. Може да се използва за преместване на операционната логика от обекти в друг клас. Например количка за пазаруване, в която могат да се добавят различни видове артикули, като при натискане на бутона "Каса" общата сума, която трябва да се плати.
Пример Java Util Regex Pattern
Компилирането от шел скриптове на Unix/Linux се използва, когато разработчикът не разполага с проект "Ant" или "Ant-базиран" проект за компилиране на персонализирани "Java"-програми. В тези случаи е обичайно да се използва скрипт на обвивката на Linux за компилиране на техните Java класове. Много добро приложение на скрипта за потребителя е динамичното включване на всички Jar файлове, които са необходими, в пътя на класа. Така че Jar файловете са налице, а компилирането им е много лесно от командния ред.
Програмата прави две предположения:
- Потребителят се намира в директорията над нивото с име " src", която съдържа " java" файлове.
- Потребителят се намира в директорията над нивото с име " lib", и всички файлове "Jar", от които се нуждае програмата, са в тази директория.
Скрипт модел Компилиране на Java.

Регулярните изрази в "Java" Util е използването на класовете Pattern и Matcher. Можете да използвате метода String.matches () за извършване на съвпадение. В някои случаи може да се наложи да използвате малко по-облекчен начин за стартиране на сесия, който обаче в крайна сметка ви дава повече гъвкавост и може да подобри производителността. По-специално, два класа от пакета java.помощ.Модел и съвпадение. Снимките са показани по-долу.

Процедурата за използване на Java Regex Pattern е следната:
- Компилиране на израза в обект "Модел".
- Извикване на статичния метод Pattern.compile (), като предава израза. Този метод връща обект Pattern. Изпълнението на този обект е вътрешно представяне на модела във вид, който го прави ефективен за извършване на сравнения.
- Когато е необходимо да се извърши съпоставяне, създайте обект Matcher.
- За да проверите дали даден низ от шаблона съвпада, въведете метод matching() на шаблона на обекта, като му предадете низ.
- Извикайте Java Pattern Matcher, който връща булева стойност, показваща дали низът, подаден на метода (), отговаря на регулярен израз.
Затова шаблоните за проектиране са много популярни сред разработчиците софтуер, защото представят добре описано решение на типична задача. Това са помощници, които автоматизират сложни, повтарящи се задачи и позволяват на членовете на екипа с различни нива на обучение да ги изпълняват.