Te taima panui: 6 minuti
Ko te tauira hoahoa ehara i te waehere ka taea e tatou te kape me te whakauru ki roto i ta maatau kaupapa, ka taea e taatau ki nga mahi paerewa, whare pukapuka ranei. Ko te tauira hoahoa he ariā whanui ka taea te whakaoti rapanga. Ko te tikanga he tauira ka taea e tatou te whai me te whakatinana i tetahi otinga e tika ana mo to tatou kaupapa.
He maha nga wa e rangirua ana nga tauira ki nga algorithms, na te mea ko nga ariā e rua e whakaatu ana i nga otinga angamaheni ki etahi raru e mohiotia ana. Ahakoa he algorithm defiMēnā he mārama ngā mahi ka taea te whakatutuki i tētahi whāinga, ko te tauira he whakaahuatanga taumata teitei ake o te otinga. He rereke pea te waehere mai i te tauira kotahi i hoatu ki nga kaupapa rereke e rua.
I te hiahia ki te whakataurite, ka taea e tatou te whakaaro mo te tunu tunu kai: he maamaa nga huarahi e rua ki te whakatutuki i tetahi whaainga. Heoi ano, he rite tonu te tauira ki te kaupapa, ka taea e koe te kite he aha te hua me ona ahuatanga, engari ko te tikanga tika o te whakatinanatanga ka whakawhirinaki ki a maatau te tuhi i te waehere.
Ko te nuinga o nga tauira he tino korero okawa kia taea ai e te tangata te whakaputa ano i roto i nga horopaki maha. Kia kite tatou i raro i nga huānga kei roto i te whakaahuatanga o te tauira:
Ka taea e te kaitakataka te hanga rorohiko me te kore e mohio ki te noho o nga tauira hoahoa. He maha nga mahi, na konei ka whakatinanahia etahi kaupapa me te kore e mohio. Engari he aha te take me whakapau taima ki te ako i a raatau?
He rereke nga tauira hoahoa i roto i te uaua, te taumata o nga korero, me te tauine o te whakamahi puta noa i te punaha hoahoa.
Ma te whakataurite, ka taea e tatou te noho haumaru ma te whakauru i etahi rama rama, te hanga ranei i tetahi whakawhitinga taumata-maha katoa me nga huarahi o raro mo te hunga hikoi.
Ko nga tauira tino taketake, taumata-iti e kiia ana kīwaha . Ko te tikanga ka tono noa ki te reo hotaka kotahi.
Ko nga tauira tino ao me te taumata teitei tauira hoahoanga . Ka taea e nga kaiwhakawhanake te whakatinana i enei tauira ki nga reo katoa. Kaore i rite ki etahi atu tauira, ka taea te whakamahi hei hoahoa i te hoahoanga o te tono katoa.
I tua atu, ka taea te whakarōpūhia nga tauira katoa kia rite ki o raatau whakamatauria kaupapa ranei. Ko nga akomanga matua e toru ko:
Toi he tauira hoahoa hanganga e whakarato ana i te atanga ngawari ki te whare pukapuka, ki te anga, ki etahi atu huinga karaehe uaua ranei.
Me whakaaro tatou me mahi rorohiko, i runga i te huinga maha o nga taonga no roto i te whare pukapuka, anga anga ranei. Ko te tikanga, me arawhiti tatou i enei mea katoa, kia mau ki nga whakawhirinakitanga, mahia nga tikanga i runga i te raupapa tika, me era atu.
Ko te mutunga mai, ka piri te arorau pakihi o nga karaehe ki nga taipitopito whakatinanatanga o nga karaehe tuatoru, ka uaua ki te mohio me te whakahaere.
una facade
he karaehe e whakarato ana i te atanga ngawari ki tetahi puunaha iti uaua he maha nga waahanga neke. A facade
he iti noa nga mahi ka whakaritea ki te mahi tika me te punaha iti. Heoi, kei roto anake nga ahuatanga e tino aro nui ana nga kaihoko.
Kia kotahi facade
he mea whai hua ina hiahia tatou ki te whakauru i te taupānga me tetahi whare pukapuka maamaa he maha nga ahuatanga, engari he iti noa te waahanga o tana mahi.
Hei tauira, ka taea e tetahi taupānga e tuku ana i nga ataata rorirori poto me nga ngeru ki nga paapori paapori ka taea te whakamahi i te whare pukapuka tahuri ataata ngaio. Heoi, ko nga mea katoa e tino hiahiatia ana e matou he karaehe me te tikanga kotahi encode(filename, format)
. I muri i te hanga i taua akomanga me te hono atu ki te whare pukapuka whakawhiti ataata, ka riro i a maatau te tuatahi facade
.
Hei tauira, he rite te kaiwhakahaere waea o te pokapu waea a facade
. Inaa, ka waea atu tatou ki te ratonga waea a te toa ki te tuku i tetahi ota waea, na tatou te kaiwhakahaere facade
ki nga ratonga me nga tari katoa o te toa. Ka whakaratohia e te kaiwhakahaere he atanga reo ngawari ki te punaha tono, nga huarahi utu me nga momo ratonga tuku.
Whakaarohia Toi hei urutau ngawari mo etahi punaha iti uaua. Facade
ka wehe i te matatini i roto i te akomanga kotahi ka taea e etahi atu waehere tono te whakamahi i te atanga ngawari.
I tenei tauira, Facade
ka huna i te uaua o te API YouTube me te whare pukapuka FFmpeg mai i te waehere kiritaki. Engari ki te mahi me te maha o nga karaehe, ka whakamahia e te kaihoko tetahi tikanga ngawari ki te 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
Ka whakarato tonu a Coveware na Veeam i nga ratonga whakautu mai i nga aitua. Ka tukuna e Coveware nga mahi whakawai me te whakatikatika…
Ko te tiaki matapae kei te huri haere i te waahanga hinu me te hau, me te huarahi auaha me te kaha ki te whakahaere tipu.…
Kua tukuna e te UK CMA tetahi whakatupato mo te whanonga a Big Tech i te maakete mohio. I reira…
Ko te Whakatau "Nga Whare Kaariki", i hangaia e te Kotahitanga o Europi hei whakarei ake i te kaha o te kaha o nga whare, kua mutu tana mahi ture me te…