Isikhathi sokufunda esilinganiselwe: 6 imizuzu
Iphethini yokuklama akuyona ikhodi esingayikopisha futhi siyifake ohlelweni lwethu, njengoba singenza ngemisebenzi evamile noma amalabhulali. Iphethini yokuklama ingumqondo ojwayelekile okwazi ukuxazulula inkinga ethile. Ngokuyisisekelo imodeli esingakwazi ukuyilandela imininingwane yayo futhi sisebenzise isisombululo esifanelana neqiniso lohlelo lwethu.
Amamodeli avame ukudideka nama-algorithms, ngoba yomibili imiqondo ichaza izixazululo ezijwayelekile zezinkinga ezithile ezaziwayo. Ngenkathi i-algorithm defiUma kukhona njalo isethi ecacile yezenzo ezingafinyelela umgomo othile, imodeli incazelo yezinga eliphezulu yesisombululo. Ikhodi evela kumodeli efanayo esetshenziswa ezinhlelweni ezimbili ezahlukene ingase yehluke.
Sifuna ukwenza isifaniso, singacabanga ngeresiphi yokupheka: bobabili banezinyathelo ezicacile zokufeza umgomo. Kodwa-ke, imodeli ifana nephrojekthi, ongabona ngayo ukuthi yini umphumela nezici zayo, kodwa ukuhleleka okuqondile kokuqaliswa kuncike kithi esibhala ikhodi.
Amaphethini amaningi achazwa ngokusemthethweni kakhulu ukuze abantu bakwazi ukuwakhiqiza ezimeni eziningi. Ake sibone ngezansi ama-elementi akhona encazelweni yemodeli:
Umklami angathuthukisa isofthiwe ngaphandle kokwazi ukuba khona kwamaphethini okuklama. Abaningi bayakwenza, futhi ngenxa yalesi sizathu benza ezinye izinhlelo bengazi. Kodwa kungani-ke kufanele sichithe isikhathi siwafunda?
Amaphethini wedizayini ayahluka ngobunkimbinkimbi, izinga lemininingwane, kanye nesikali sokusebenza kulo lonke uhlelo oluklanyiwe.
Ngesifaniso, singenza impambanondlela iphephe kakhudlwana ngokufaka amarobhothi ambalwa noma ukwakha impambana-ndlela yamaleveli amaningi namaphasishi angaphansi kwabahamba ngezinyawo.
Amamodeli ayisisekelo kakhulu, asezingeni eliphansi avame ukubizwa izisho . Ngokuvamile zisebenza olimini lokuhlela olulodwa kuphela.
Amamodeli asezingeni eliphakeme kakhulu kanye nezinga eliphezulu amamodeli wezakhiwo . Onjiniyela bangasebenzisa lawa maphethini cishe kunoma yiluphi ulimi. Ngokungafani namanye amaphethini, angasetshenziswa ukuklama izakhiwo zohlelo lonke lokusebenza.
Ngaphezu kwalokho, wonke amamodeli angahlukaniswa ngokusho kwawo izamile noma inhloso. Amakilasi amathathu amakhulu yilawa:
I-facade iyiphethini yedizayini yesakhiwo enikeza isixhumi esibonakalayo esenziwe lula kumtapo wolwazi, uhlaka, nanoma iyiphi enye isethi eyinkimbinkimbi yamakilasi.
Ake sicabange ukuthi sidinga ukwenza isofthiwe isebenze, ngokusekelwe kusethi enkulu yezinto ezingezamtapo wolwazi noma uhlaka oluyinkimbinkimbi. Ngokuvamile, kuzodingeka siqalise zonke lezi zinto, silandelele ukuncika, senze izindlela ngokulandelana okufanele, njalonjalo.
Ngenxa yalokho, ingqondo yebhizinisi yamakilasi izohlanganiswa ngokuqinile nemininingwane yokusetshenziswa yamakilasi ezinkampani zangaphandle, okuwenza kube nzima ukuwaqonda nokuphatha.
Una facade
iyikilasi elinikeza isixhumi esibonakalayo esilula kusistimu engaphansi eyinkimbinkimbi equkethe izingxenye eziningi ezihambayo. A facade
ingase inikeze ukusebenza okulinganiselwe uma kuqhathaniswa nokusebenza ngokuqondile nesistimu engaphansi. Nokho, ihlanganisa kuphela izici amakhasimende azikhathalela ngempela.
Yiba neyodwa facade
iwusizo uma sidinga ukuhlanganisa uhlelo lokusebenza nomtapo wolwazi osezingeni eliphezulu onezici eziningi, kodwa sidinga ingxenye encane kuphela yokusebenza kwayo.
Isibonelo, uhlelo lokusebenza olulayisha amavidiyo amafushane ahlekisayo namakati kunkundla yezokuxhumana lungase lusebenzise ilabhulali yokuguqula ividiyo ephrofeshinali. Nokho, esikudingayo ngempela ikilasi elinendlela eyodwa encode(filename, format)
. Ngemva kokudala ikilasi elinjalo nokulixhuma kulabhulali yokuguqula ividiyo, sizoba nelethu lokuqala facade
.
Isibonelo, osebenza ngocingo wesikhungo sezingcingo ufana ne- facade
. Eqinisweni, lapho sishayela isevisi yocingo yesitolo ukuze sifake i-oda locingo, osebenza ngocingo ungowethu facade
kuzo zonke izinsiza kanye neminyango yesitolo. I-opharetha inikeza isikhombimsebenzisi esilula sezwi ohlelweni loku-oda, amasango okukhokha kanye nezinsizakalo ezihlukahlukene zokulethwa.
Cabanga ngayo I-facade njenge-adaptha elula yamanye amasistimu angaphansi ayinkimbinkimbi. Facade
ihlukanisa ubunkimbinkimbi ngaphakathi kwekilasi elilodwa futhi ivumela enye ikhodi yohlelo lokusebenza ukuthi isebenzise isixhumi esibonakalayo esilula.
Kulesi sibonelo, Facade
ifihla ubunkimbinkimbi be-YouTube API kanye nelabhulali ye-FFmpeg kukhodi yeklayenti. Esikhundleni sokusebenza nenqwaba yamakilasi, iklayenti lisebenzisa indlela elula ku-Facade.
<?php
namespace RefactoringGuru\Facade\RealWorld;
/**
* The Facade provides a single method for downloading videos from YouTube. This
* method hides all the complexity of the PHP network layer, YouTube API and the
* video conversion library (FFmpeg).
*/
class YouTubeDownloader
{
protected $youtube;
protected $ffmpeg;
/**
* It is handy when the Facade can manage the lifecycle of the subsystem it
* uses.
*/
public function __construct(string $youtubeApiKey)
{
$this->youtube = new YouTube($youtubeApiKey);
$this->ffmpeg = new FFMpeg();
}
/**
* The Facade provides a simple method for downloading video and encoding it
* to a target format (for the sake of simplicity, the real-world code is
* commented-out).
*/
public function downloadVideo(string $url): void
{
echo "Fetching video metadata from youtube...\n";
// $title = $this->youtube->fetchVideo($url)->getTitle();
echo "Saving video file to a temporary file...\n";
// $this->youtube->saveAs($url, "video.mpg");
echo "Processing source video...\n";
// $video = $this->ffmpeg->open('video.mpg');
echo "Normalizing and resizing the video to smaller dimensions...\n";
// $video
// ->filters()
// ->resize(new FFMpeg\Coordinate\Dimension(320, 240))
// ->synchronize();
echo "Capturing preview image...\n";
// $video
// ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
// ->save($title . 'frame.jpg');
echo "Saving video in target formats...\n";
// $video
// ->save(new FFMpeg\Format\Video\X264(), $title . '.mp4')
// ->save(new FFMpeg\Format\Video\WMV(), $title . '.wmv')
// ->save(new FFMpeg\Format\Video\WebM(), $title . '.webm');
echo "Done!\n";
}
}
/**
* The YouTube API subsystem.
*/
class YouTube
{
public function fetchVideo(): string { /* ... */ }
public function saveAs(string $path): void { /* ... */ }
// ...more methods and classes...
}
/**
* The FFmpeg subsystem (a complex video/audio conversion library).
*/
class FFMpeg
{
public static function create(): FFMpeg { /* ... */ }
public function open(string $video): void { /* ... */ }
// ...more methods and classes... RU: ...дополнительные методы и классы...
}
class FFMpegVideo
{
public function filters(): self { /* ... */ }
public function resize(): self { /* ... */ }
public function synchronize(): self { /* ... */ }
public function frame(): self { /* ... */ }
public function save(string $path): self { /* ... */ }
// ...more methods and classes... RU: ...дополнительные методы и классы...
}
/**
* The client code does not depend on any subsystem's classes. Any changes
* inside the subsystem's code won't affect the client code. You will only need
* to update the Facade.
*/
function clientCode(YouTubeDownloader $facade)
{
// ...
$facade->downloadVideo("https://www.youtube.com/watch?v=QH2-TGUlwu4");
// ...
}
$facade = new YouTubeDownloader("APIKEY-XXXXXXXXX");
clientCode($facade);
Ercole Palmeri
I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…
Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…
I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…
Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...