Шаблон на Јави
Обрасци дизајна помажу кодеру да упише чист, ефикасан и непонављајући код са мање повезивања или зависности између појединих оперативних јединица. Кад год кодер анализира захтев који клијент поставља, тада је прво решење које треба узети у обзир одговарајући дизајнерски образац за примену кода, а на којем би се код касније смањио, могу се уградити и нека додатна ограничења.
Узорци дизајна се увек бирају у контексту скалабилности и чисте примене.
Ми се одлучујемо за предлошке када гледамо да их испунимо помоћу одређених имплементација, које се зову предлошке.
А у арени кодирања користимо ове парадигме под следећим пословним сценаријима.
Сценариј 1 -
Ви би требало да дизајнирате веб решење за Темплате на Јави где треба да примените карактеристична својства возила попут његове формуле за израчунавање брзине, израчунавања обртног момента итд. Дакле, за бицикл би било другачије од онога што би било за аутомобил, а ако видимо перспективу скалабилности, онда додамо основни образац који само има спољни костур ових метода које се тичу израчунавања, а затим смо у наш код додали само варијанте тих имплементација, чиме смо направили флексибилан дизајн. Видјевши само овај образац, корисник ће добити представу о функционалностима које нуде и може се радовати само у сродним класама.
Сценариј 2 -
Други случај може бити генерисање заједничког предлошка за класе база података које ћете позвати у свом пројекту, можда користите Орацле, МиСКЛ или ДБ2, а вероватно се у различитим сценаријима кодирања веселите повезивању са њима у различитим инстанцама времена, тако да у предлошку можете да унесете корисничко име, лозинку, добијете Цоннецтион итд. својства, а класе које се проширују дају детаље имплементације како тражите.
Јава програмер зна како да примјени ову функцију !! Да, апстрактна класа је прави одговор, надам се да знате да кад год имамо сценарије где уско повезани ентитети треба да буду убачени у решење, онда бирамо апстрактне класе (у супротном, интерфејси такође решавају нашу сврху).
Имплементација предлошка у Јави
1. Нека основна класа буде апстрактна која укључује и методе шаблона и апстрактне методе.
2. Методе шаблона су коначне природе и након тога се неће мењати.
3. Апстрактне методе су неопходне за примјену подржавањем пословне логичке шифре у класама имплементације.
4. Метода би могла бити апстрактна у дечјим разредима ако се не мора примењивати само тамо.
5. Брига о поступању са изузецима на примерен начин је такође важан сценарио.
6. Исправан избор о томе шта мора бити означено апстрактно, а шта не мора бити.
Методе са каросеријама у основној класи су направљене да буду коначног типа, јер их неће прегласавати, као што је случај и код израчунавања броја обртаја возила.
Испод смо дефинирали примјер темељен на јава шаблону, који укључује примјену истог примјера -
public abstract Vehicle
(
String fuelType;
Int countOfSeats;
public abstract double calcSpeed() throws Exception;
public abstract double calcTorque() throws Exception;
public final void templateMethod()
(
Task1();
Task2();
Task3();
)
public Bike extends Vehicle
(
@Override
public abstract double calcSpeed() throws Exception
(
try
(
return distance/time;
)
Catch(Exception e)
(
System.out.println(e.printStackTrace());
)
)
@Override
public abstract double calcTorque() throws Exception
(
try
(
return radialLength * force;
)
Catch(Exception e)
(
System.out.println(e.printStackTrace());
)
)
)
public car extends Vehicle
(
Int doorCount; // door doesn't exist in all vehicles so has been added here
@Override
public abstract double calcSpeed() throws Exception
(
try
(
return distance/time;
)
Catch(Exception e)
(
System.out.println(e.printStackTrace());
)
)
@Override
public abstract double calcTorque() throws Exception
(
try
(
return radialLength * force;
)
Catch(Exception e)
(
System.out.println(e.printStackTrace());
)
)
)
Можете да користите ецлипсе или друге платформе за компајлирање на мрежи да бисте проверили ову имплементацију користећи сопствене имплементације.
Системски захтеви пре него што кодујете
1. Пожељно је да буде инсталиран Јава 8.
2. Системске варијабле морају бити правилно конфигурисане за ЈРЕ.
3. Такође је потребан ИДЕ попут помрачења који аутоматски провјерава синтактичке грешке.
4. Отклањање грешке само са ИДЕ-ом.
5. Додаци за анализу дизајна шаблона.
6. Алати за придруживање дијаграма класа како би се сазнао однос насљеђивања више разине између класа које сте направили у имплементацији шаблона дизајна шаблона.
7. Било који Виндовс, Линук или МАЦ урадио би ваш задатак.
Предности шаблона на Јави
- Спрјечава дуплирање кода, јер се опће ствари могу имплементирати само у апстрактној класи, потребне варијације могу се имплементирати у поткласе.
- Променљиви обрасци могу се имплементирати у подразреде на основу наслеђеног односа имплементације. Овај процес се назива прегласавањем метода.
- Главни предложак може имати апстрактне и не-апстрактне методе, чинећи имплементацију лакшом и флексибилнијом.
- Дужина кода остаје ограничена.
- Код се чини чистим и ефикасним.
- Лако за уклањање погрешака, чиме је живот програмера лакши.
Користите случајеве
- Имплементације веза-хас.
- Имплементације базе података
- Примена варијанти возила.
- Прикупљање воћа и примјена витаминских ефеката.
- Имплементација методе радних токова
Шта још можете истражити?
Да ли сте упознати са концептима имплементације сучеља, са Јава 8, носећи нове функције, можете испробати имплементацију интерфејса на основу горе наведених изведених класа и можете испробати различите пословне сценарије, у верзији Јава 8 и старијим верзијама, ви сте либерални да надјачате апстрактне методе сучеља у класама за имплементацију, требало би да погледате документацију коју је Орацле представио за исте.
Такође бисте требали истражити и друге обрасце дизајна јер су важни и очекују од искусних јава програмера у индустрији.
Препоручени чланци
Ово је водич за предложак на Јави. Овдје смо разговарали о концепту, захтјеву, кориштењу и предности предлошка на Јави. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -
- Шта је узорак дизајна у Јави?
- Увод у ЈаваСцрипт
- Како инсталирати селен
- Шта је Цогнос?
- Сажетак наставе у ЈаваСцрипт-у
- ЈРЕ вс ЈВМ | Топ 8 разлика са (Инфограпхицс)