Koji su PHP dizajn obrazaca?

PHP design Patterns

PHP dizajn obrazaca

Pregled: Svi znamo koliko je važno imati uzorke dizajna postali bitan dio u današnjem razvoj aplikacija, bilo da je bilo koja tehnologija. U PHP tehnologije i dizajna uzorka su postali sastavni dio razvoja. Commonly used design patterns are also followed in the PHP development world.

U ovom članku ću govoriti o različitim uzorcima dizajna koji se koriste u PHP domene s nekim uzoraka aplikacija.

Uvođenje: Dizajn uzorci daju generički višekratnu rješenja za najčešće probleme. Dizajn obrazac nije konkretno rješenje koje se može pretvoriti u izvornom kodu ili strojni jezik, a to je predložak koji se može koristiti za rješavanje problema u različitim situacijama. Dizajn obrasci pomoći u bržem razvoju kao što su predlošci dokazano, a od razvojnog programera točke, samo provedba je potrebno. Dizajn uzorci ne samo da bi razvoj softvera brže, ali i zatvoriti u kućište velike ideje na jednostavniji način. U PHP svijetu, Sljedećih pet dizajn obrazaca koriste u cjelini -

  • Tvornica Pattern
  • Singleton Pattern
  • The Observer Pattern
  • Zapovjednom lancu Pattern
  • Strategija Pattern

Tvornica Pattern:

Tvornica uzorak osigurava rješenje koje omogućuje opuštenu spojka, tako nam pomaže da biste dobili osloboditi od uske problema spojnice. Kao programer svi smo dobro svjesni promjena s kojima se suočavaju, a održavamo kod, koja je čvrsto spojena. Tvornica uzorak daje klasu ima neke metode za stvaranje objekata za nas za vrijeme izvođenja. Umjesto stvaranja instance direktno koristimo tvornicu za izradu predmeta za nas. Thus, ako moramo promijeniti vrstu objekta stvoren, samo mi treba mijenjati tvornicu. Sljedeći kod je primjer implementacije tvornice u PHP -

Listing 1: Implementacija uzorak Tvornica u PHP

[Code]

<?php

sučelje za korisnike

{

funkcija getName();

}

Klasa kupaca provodi za korisnike

{

javna funkcija __construct ( $iskaznica ) { }

javna funkcija getName ()

{

return “PHP - Tvornica Pattern”;

}

}

klasa CustomerFactory

{

javnih statičkih funkcija Stvaranje ( $iskaznica )

{

povratak novi kupac ( $iskaznica );

}

}

$uo = CustomerFactory::Stvoriti ( 1 );

Odjek ( $uo->getName().”\n” );

?>

[/Code]

U gore navedenom primjeru imamo sučelje koje se naziva, Kupac koji ima definiciju objekta. Ovo sučelje se provodi u klasi Korisnika. Tvornica klasa CustomerFactory stvara predmete kupaca. Ako ćemo izvršiti ovaj kod na naredbenog retka koji ima PHP Interpretor smo dobili rezultat kao -

[Code]

% php factorySample.php

PHP - Tvornica Pattern

%

[/Code]

Singleton Pattern:

Kao što ime sugerira, Singleton obrazac dopušta samo jedan primjer koji se stvorio. Dok se razvija aplikaciju, nailazimo na mnoge situacije u kojima moramo imati samo jednu instancu objekta. Ovaj primjer se mogu dijeliti u raznim procesima. E.g. a povezivanja baze podataka objekata. To je uvijek savjetovao da stvoriti i uništiti povezivanja baze podataka objekt kako bi se izbjeglo opterećenje otvaranja i zatvaranja veze. Sljedeći kod pokazuje kako primijeniti Singleton u PHP -

Listing 2: Singleton implementacija u PHP

[Code]

<?php

require_once(“DB.php”);

klasa DatabaseConnection

{

javnih statičkih funkcija getDBO ()

{

statički $ db = null;

ako ( $db == null )

$db = new DatabaseConnection();

povratak $ db;

}

privatni $ _handle = null;

privatni funkcija __construct()

{

$DSN = 'MySQL://korijen:Lozinka @ dbhost / dbinstance ',en;

$ovaj->_handle =& DB::Spojiti( $DSN, red() );

}

Ručka javne funkcije()

{

povratak $ ovaj->_handle;

}

}

otisak( “Ručka = “.DatabaseConnection::dobiti()->rukovati().”\n” );

otisak( “Ručka = “.DatabaseConnection::dobiti()->rukovati().”\n” );

?>

[/Code]

Gore kod pokazuje kako da biste dobili vezu db pomoću Singleton pristup. Privatna Konstruktor u ovoj klasi osigurava da se ne može nazvati izvan klase. Statička metoda - getDBO () naziva iz razreda pozivatelja kako bi dobili DB veze objekt.

The Observer Pattern:

Uzorak promatrač je vrlo ravno naprijed. Objekt se sastoji vidljive dodavanjem metodu koja omogućuje još jedan objekt, promatrač da se registrirani. Ako vidljivi objekt dobiva promijenjen, on šalje poruku o objektima koji su registrirani kao promatrači. Sljedeći kod pokazuje kako implementirati Observer pattern -

Listing 3: Provedba Observer Uzorak u PHP

[Code]

<?php

sučelje Observer

{

funkcija onChanged( $pošiljalac, $args );

}

sučelje vidljivim

{

funkcija addObserver( $posmatrač );

}

Klasa CustomerList provodi vidljivim

{

privatni $ _observers = array();

javna funkcija addCustomer( $ime )

{

za svakoga( $ovaj->_observers kao $ OBS )

$obs->onChanged( $ovo, $ime );

}

javna funkcija addObserver( $posmatrač )

{

$ovaj->_observers []= $ Promatrač;

}

}

Klasa CustomerListLogger implementira Observer

{

javna funkcija onChanged( $pošiljalac, $args )

{

odjek( “'$ args’ Kupac je dodan u listu n” );

}

}

$ul = new Popis korisnika();

$ulsterski>addObserver( novi CustomerListLogger() );

$ulsterski>addCustomer( “Utičnica” );

?>

[/Code]

Gore kod definira dvije sučelja i svojim klasama provedbe.

Zapovjednom lancu Pattern:

Zapovjedni lanac uzorak je još jedan model koji se temelji na konceptu labave spojnice. Ovdje je svaki rukovatelj odlučuje da li se može obraditi zahtjev ili ne. Ako je to moguće, zahtjev se rukuje i proces se zaustavlja. Ako ne, zahtjev tada je prošao u sljedeći vodiča i tako dalje. Sljedeći kod je provedba Uzorak ovog obrasca -

Listing 4: Primjer koda provedbi zapovjedni lanac Pattern -

[Code]

<?php

Naredba sučelje

{

funkcija onCommand( $ime, $args );

}

klasa CommandChain

{

privatni $ _commands = array();

 

javna funkcija addCommand( $cmd )

{

$ovaj->_commands []= $ Cmd;

}

javna funkcija runCommand( $ime, $args )

{

za svakoga( $ovaj->_commands što cmd $ )

{

ako ( $cmd->onCommand( $ime, $args ) )

return;

}

}

}

Klasa CustCommand provodi Command

{

javna funkcija onCommand( $ime, $args )

{

ako ( $ime != 'AddCustomer’ ) return false;

odjek( “To je CustomerCommand rukovanje 'addCustomer' n” );

return true;

}

}

Klasa MailCommand provodi Command

{

javna funkcija onCommand( $ime, $args )

{

ako ( $ime != 'Mail’ ) return false;

odjek( “To je MailCommand rukovanje 'mail' n” );

return true;

}

}

$cc = new CommandChain();

$cc->addCommand( novi CustCommand() );

$cc->addCommand( novi MailCommand() );

$cc->runCommand( 'AddCustomer', nula );

$cc->runCommand( 'Mail', nula );

?>

[/Code]

Strategija Pattern:

Uzorak strategija temelji se na algoritmima. Složeni algoritmi vade iz klase, tako da one mogu biti zamijenjene lako. Strategija uzorak se temelji na Plug and Play teorije. Zajednička provedba strategije uzorak, ako želimo promijeniti način na koji se stranice rangiraju za pretraživanje stranici s rezultatima. Implementacija uzorak prikazan je ispod -

Listing 5: Provedba Uzorak Strategije uzorak

[Code]

<?php

Strategija sučelje

{

funkcija filter( $snimiti );

}

Klasa FindAfter implementira strategiju

{

privatni $ _name;

javna funkcija __construct( $ime )

{

$ovaj->_name = $ ime;

}

javna funkcija filter( $snimiti )

{

povratak strcmp( $ovaj->_ime, $snimiti ) <= 0;

}

}

Klasa FindRandom implementira strategiju

{

javna funkcija filter( $snimiti )

{

povratak rand( 0, 1 ) >= 0.5;

}

}

klasa CustomerList

{

privatni $ _list = array();

javna funkcija __construct( $imena )

{

ako ( $imena != null )

{

za svakoga( $imena kao ime $ )

{

$ovaj->_popis []= $ Ime;

}

}

}

javna funkcija dodatak( $ime )

{

$ovaj->_popis []= $ Ime;

}

javna funkcija nalaz( $filter )

{

$Osim certifikata = array();

za svakoga( $ovaj->_list kao $ korisnika )

{

ako ( $filter->filter( $user ) )

$Osim certifikata []= $ User;

}

povratak $ certifikata za;

}

}

$ul = new CustomerList( red( “i Joe”, “Ric Anderson”, “Nick Paul”, “Megan Pit” ) );

$f1 = $ ulsterski>pronaći( novi FindAfter( “J” ) );

print_r( $f1 );

$f2 = $ ulsterski>pronaći( Novi FindRandom());

print_r( $f2 );

?>

[/Code]

Here, CustomerList klasa je omot koji ima niz nekih imena. Ova klasa implementira metodu za traženje koji uzima jedan od nekoliko strategija za odabir podskupa tih imena. Strategije su definirane Strategijom sučelja, koja ima dvije implementacije: Prvi bira kupce slučajno, dok je drugi odabere sva imena nakon određenog naziva.

Summary: Dakle, dizajn obrazaca su neke od velikih ideja koje se mogu koristiti u bilo kojem programskom jeziku, uključujući PHP. Razgovarali smo o najčešćim dizajn obrazaca koji se koriste u PHP aplikacija.
Neka nam zaključiti našu raspravu sa sljedećim metaka -

  • Dizajn uzorci su korišteni u svakom tehnologije kako bi programeri slijedi zajednički višekratnu rješenje pristup za uobičajene probleme.
  • Dizajn Uzorci nisu konkretni, ali su konceptualni.
  • Kao i na drugim jezicima, PHP i koristi zajednički dizajn obrazaca, od kojih su neke opisane gore.

 

Tagged on: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share