Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Līdz ar pakalpojumu orientētas arhitektūras (SOA) pieaugumu arvien vairāk organizāciju izmanto trešo pušu pakalpojumus savām uzņēmuma sistēmām. Šiem uzņēmumiem ir jāseko līdzi strauji mainīgajai uzņēmējdarbības videi, kas var nozīmēt atteikšanos no viena pakalpojumu sniedzēja pakalpojumiem citam.

Šādos gadījumos uzņēmuma esošā arhitektūra var būt nesaderīga ar jauna pakalpojumu sniedzēja arhitektūru. Tā vietā, lai tērētu mēnešus, pārrakstot uzņēmuma kodu, lai tas būtu saderīgs ar jauno programmatūru, uzņēmums var izmantot adaptera dizaina modeli.

Kāds ir adaptera dizaina modelis?

Adaptera modelis ļauj klasēm, kurām ir nesaderīgas saskarnes, strādāt kopā. Tas tiek darīts, pārveidojot esošās klases (vai programmatūras) saskarni tādā, kādu sagaida klients (vai pakalpojums). Ir divu veidu adapteri: objektu adapteri un klases adapteri.

Objekta adapteris izmanto kompozīciju, lai ietītu adaptētāju ar adapteri, efektīvi izveidojot klienta sagaidāmo saskarni. Tātad, ja klients sagaida virkni, adapteris ņems veselu skaitli (adaptētājs) un piešķirs tam virknes īpašības.

Iepriekš redzamā klases diagramma attēlo objekta adapteri. The adaptera klase īsteno mērķa saskarne, efektīvi iegūstot piekļuvi visām saskarnes metodēm. Tad tas pielāgo an adaptētais un iesaiņo to adaptētais Ar mērķa saskarne metodes.

Klases adapteris izmanto vairākkārtēju mantojumu, kur adaptera klase ir gan adaptētāja, gan mērķa klases apakšklase. Tālāk redzamā klašu diagramma attēlo klases adapteri, kuru varat brīvi izmantot programmēšanas valodās, kas atbalsta vairāku pārmantošanu.

Adaptera dizaina modeļa ieviešana Java

Šī lietojumprogramma ieviesīs objekta adapteri. Šis lietojumprogrammas paraugs simulēs finanšu organizācijas pāreju no maksājumu karšu izmantošanas un apstrādes uz kredītkartēm. Šī organizācija sākotnēji izmantoja šādu maksājumu karšu saskarni:

publiskisaskarneChargeCard{
publiskinederīgsmēneša Bilance();
publiskinederīgskavējuma maksa();
publiskinederīgsGada maksa();
}

Populārs maksas karšu veids, ko apstrādā šīs organizācijas sistēma, ir plūmju karte:

publiskiklasēPlumCardīstenoChargeCard{
Privātsstarpt kartes Nr;
Privāts String customerName;
Privātsdubultā līdzsvars;

// primārais konstruktors
publiskiPlumCard(starpt cardNo, String customerName, dubultā atlikums){
šis.cardNo = kartes Nr;
šis.customerName = klientaVārds;
šis.bilance = bilance;
}

// ieguvēji un noteicēji
publiskistarptsaņemtKartes Nr(){
atgriezties kartes Nr;
}

publiskinederīgskomplektsCardNr(starpt kartes Nr){
šis.cardNo = kartes Nr;
}

publiski Stīga getCustomerName(){
atgriezties Klienta vārds;
}

publiskinederīgssetCustomerName(virkne customerName){
šis.customerName = klientaVārds;
}

publiskidubultāgetBalance(){
atgriezties līdzsvars;
}

publiskinederīgssetBilance(dubultā atlikums){
šis.bilance = bilance;
}

@Override
publiskinederīgsmēneša Bilance(){
System.out.println("Janvārī " + šis.customerName + "iztērēts" + šis.bilance);
}

@Override
publiskinederīgskavējuma maksa(){
System.out.println(šis.customerName + "mēneša kavējuma maksa ir 80,00 USD");
}

@Override
publiskinederīgsGada maksa(){
System.out.println(šis.customerName + "gada maksa ir 200,00 USD");
}
}

Šī finanšu iestāde pāriet uz kredītkartēm un pakāpeniski atceļ maksājumu karšu izmantošanu, tāpēc dažiem to klientiem tagad ir kredītkartes:

publiskisaskarneKredītkarte{
publiskinederīgsikmēneša minimālais maksājums();
publiskinederīgsinterese();
publiskinederīgsGada maksa();
}

Finanšu institūciju uzņēmumu sistēma tagad apstrādā tikai kredītkartes, jo nākamajā gadā tā plāno pārtraukt maksājumu karšu izmantošanu. Bet lielākā daļa viņu klientu joprojām izmanto maksājumu kartes. Tāpēc inženieri nolēma, ka vislabāk ir ieviest adapteri, līdz visi viņu klienti pāriet uz kredītkarti.

publiskiklasēChargeCardAdapterīstenoKredītkarte{
ChargeCard chargeCard;

publiskiChargeCardAdapter(ChargeCard chargeCard){
šis.chargeCard = chargeCard;
}

@Override
publiskinederīgsikmēneša minimālais maksājums(){
šis.chargeCard.monthlyBalance();
}

@Override
publiskinederīgsinterese(){
šis.chargeCard.lateFee();
}

@Override
publiskinederīgsGada maksa(){
šis.chargeCard. Gada maksa();
}
}

Šis ChargeCardAdapter Java klase ievieš Kredītkarti Java interfeiss. Tas pielāgo ChargeCard (adaptējamo), piešķirot tai kredītkartes īpašības. Piemēram, sistēma apstrādās kredītkartes procentu maksu, kas ir nokavējuma nauda kredītkartes klientam, kurš vēl nav veicis konvertāciju.

Adaptera modeļa izmantošanas priekšrocības

Galvenā adaptera modeļa izmantošanas priekšrocība ir tā, ka tas ļauj klientiem izmantot jaunus pakalpojumus, bibliotēkas un līdzekļus, nemainot savu kodu. Tas veicina lietojumprogrammu mērogojamību.

Vēl viena priekšrocība ir tā, ka šis modelis ir arī elastīgs. Adaptera modelis nodrošina divas ieviešanas metodes: objektu adapterus un klases adapterus.