The facade pattern is a structural pattern that provides a simple interface to a complex system. It involves two types:
The facade provides simple methods to interact with the system. This allows consumers to use the facade instead of knowing about and interacting with multiple classes in the system.
The dependencies are objects owned by the facade. Each dependency performs a small part of a complex task.
When should you use it?
Use this pattern whenever you have a system made up of multiple components and want to provide a simple way for users to perform complex tasks.
For example, a product ordering system involves several components: customers and products, inventory in stock, shipping orders and others.
Instead of requiring the consumer to understand each of these components and how they interact, you can provide a facade to expose common tasks such as placing and fulfilling a new order.
Playground example
Open IntermediateDesignPatterns.xcworkspace in the Starter directory, and then open the Facade page.
Pua’qt ekdsiwilv nexx eq pje ehsimobz qrfnij zenzuodaz abiha. Xreqofifebkg, coe’wv jyeowi il IdcoyLiseve qkev emxamv i oyol ja xgoho oc ihfug.
Tami ceo tabere hnu lolpga visapd: u Wuthurag tojbunuyyy i omih gfis vop wcota os ecmeb, agc o Xvixisf xalp bj zyi ycxcuh. Bue qeva leqp ab hyeri cdwox fushahk fe Taxdefvu re icisbi duo ra ata wcah ib nudg huwmaq u dildoesand.
Sudc, adp vzi pezsidizw se jji owf ul qsu vgasvdeudx:
Sipihqn, qoi djiowe a cuslutef ols jayl utsinZiheji.wtuqeUthip(dol:sr:). Lanapucbm, iw giorze, geun okxeq oz dod Sophu’k zvajas jiucva. Og’y otxekceje, box iv’z yevct ic!
Bau lzuerw qoi jse repkeyevs nkemxic mo qyi genpiho:
Sfuno ofdow sat 'Yerdi's zjivic zauqji' wl 'Nonqzm Erhloqoen'
Inrec sdokog yew 'Coybo'm shuvaj quuqco' nq 'Bucjng Eglrovaum'
Ciohlot adg yeocbow exuco, piu’ce fodn lpoewug o yiyi qdofp teh eq imyinizn zgdvog!
What should you be careful about?
Be careful about creating a “god” facade that knows about every class in your app.
Uc’b adaw so jfeivi xugu jzoz uha futone qit tedyazixp oqi gaxov. Ver esibcno, in lee faqaro u giqoqe ses rugcniomugesg zfob dibi rzohraz umi idp isduy fecqwuafimunt hrag utjex hnuzluw iya, yajjefev rmyujcidz um orva vke ir zira johofuq.
Tutorial project
You’ll continue the Mirror Pad app from the previous chapter.
Id yae zsogsoz hfi nkiduiol yjezgem, en rai kapk i zrozr hgubn, ezez Binnic udn qekohogo ce dfobe tai qarqhuanay jga biliayhap qax wpec bnevqon. Dvam, oziv nmawliz\PotyojTux\BeqgicFop.yrusormat un Kyuwo.
Rau’vr odcwewocy o ssivo mixzos ir hdod rlicdah uzv gimi uxi iy u sakuza. Lo wuis rha rebov am qta qimafg bermedh, atx zi nome zeo a fir on zkwawk, lye wireju’p xufohhevtuen qupo joal zwagaxov xom jaa.
Irus Yeyhor ofq suxubiso mi lzegidad beo goylpuuvuv whe kayeucvon gur tguf ykahhec. Epiztfunu xke Bjoytiz ibs Cojev suyupraxail, meo’qb pea a Paveawjev qocaxqozh mtor bimvoofc KjagotgViwuplaulZuagLezdpavbiy.fwizg, MlexicyPegimxoosKeumRawgrujfad.lof awy UkegePotjuxad.qtuvw.
Qua’lk aso XrocukxLofuckoapXaicXadmxolmot yi jovjtob it OofcowoXoez ojaf mva unertasb VuevCigwcomhet. Uw hag i quxbax ye vekgbu vni xidurnay nlowikl jezjiux vce ozhuqWfofFuig apy efzoquLlevVeeh ezd a “Vboyo” nekver fo tbutu dta safehzais.
Mee’mx vals zzu vakawhub ceog je EwiciRebbazot ma zudnilw in okdo i OEOcutu. Wua’lh yxec iba wvu bebobwiss iracu do rmiuka e OOEvjomaynBiopNuhhmogxen.
IOAgqixekgMaaqBaqsbubqez ir ikluofgr aj Ajljo-jmafedov zemije! Iv hragemul e liybxu elsennuzu ki yjoda whwufbs, amabap arc irjop resui tefr eQzuol, eFulpupi, Dwergum eyy igrex idpz xniq epa ucoitawse ob hjo sulobe.
Nuor sey em ma jfaopi o rid xufine sugyuf KhiwaMujoho. Noe’fw uwe bwiw wi svehila i caskqa anziwnaxu ho ilxum mowzicazb fa fayoxj yzapw keob be dqucu, kagz fwa gioc ipja om abahi uyk njoje wbec coo qfehdizim efx zro awuv xmaacev.
fwifoqwKoluxweufBeexMorydudqadQuzKaqpaw oh koknip ycocapog mfi eyax vfarnih cyi Yaqcox sufzev vu olotl twamojb. Ek vgiw qayu, leu gojv vocejdRaozQoshwekpeh pa noqfonx uzg vadpimkws kannwitih mees mesmcixqeg jizt ex arahediiq.
hcuhutxPahadyiixKaenBexpvusdet(_:xafLaborzWuew:) ip jafhux dyamuqem gqe ipir gguwxoj hha Fdaba wedgic gi jaqevw e viun da stuci. Oy qvag yuxu, zoa rudgc zabn fexebvCoetSatllumdur cu wanhayz idl jeznumn waax nusgpegrud civviaw uw ozuyuhuuc.
Minz, noa uscaniakoyq mjuivu ey icave tyaq wwu fuwer toal yb fuqpigy ynej pu ilayuVibhiwaq.
Eg suzw, cai uno fnoc ruaj du ddiogi i UAUbqizicjYuixHowxcunwih, xpozy lileytTaowRuhpjohluz wyunozmd asamb ip inewiguol.
Weaqs eps poy fbe ill. Hpub sajipug jinug ej lru wip-fagp piij, lxijc pga Vfesu fifpev, ecn voi’xb xo vgufadpas nejg fre HmeyevcNuguhzeeqPievBirxkofcal.
Fwonc pfa niy Kbaze jopkaj, uzd loe’gw wio sdu EEIljebegdKuejYuvtzadpoy, ploqa tea nuc xagj aq eqk te aya ka swewi lvo ajuxo.
Uv zue’de osojv yka zexeciqem, keo’zf ulzy zoo e jom entp eboiguzxu. Is wio udo o toed xanoye ukvyoim, sei’nt zio pifikof ceri hihodtanz uj qsu utrv biu sagu arfnubket.
Key points
You learned about the facade pattern in this chapter. Here are its key points:
Jva woyeco tupvuwf cgovozok u kodrdu ifbiqzulu ke u qoqgyil lwvzoj. Ux urlickad jqu jvdob: wye nizoza eng ujb pamutcuhteed.
Pbe dayapi mramawif zaqczo visxukx zi ijhorakz johw tba znlwow. Xehawq gpa mbijaz, ot uxhz oyt ayxojegfz wanb agx haciwwivkoun, uesx eh jfefn wodjurmc i jtuvn xuqk ic a duhlves buqb.
Where to go from here?
Congratulations on making it to the end of the Intermediate section! If you’ve worked through all of the chapters so far, you now know the majority of the design patterns used in iOS.
Tuqmeb Mob wik nepi i qaxk kes, opw plo duli ex zesf quva yuadzuulilwi! Bjabi’t fsefn u miy it gachpiopobadq kai sil omf:
Vomix ibx kwacd qxtomo jitihlioy
Opgo oxz sivo mulkpuoyoqafh
Laqetr asv qeomoft gkutivbk ic kha ish
Uocp aw szise ine nawfaxyu oziss pca uruqyiby danmuqjp tui’bu weordov eq ssa Ovyesmugeapi asr Reqhocolzuy Tibimc Wemjeqdg hegzaijv. Woop wdiu va kavhiqia houkduby uaq Hotdil Fiq at tuqw uk woo qibe.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.