Ke hoʻolālā nei i ka polokalamu: nā modula, nā papa, a me nā hana i ke ʻano i ka wā e pono ai nā hana hou, ʻaʻole pono mākou e hoʻololi i nā code e kū nei akā e kākau i nā pāʻālua hou e hoʻohana ʻia e ke code i hala. He ʻano ʻē paha kēia, keu hoʻi me nā ʻōlelo e like me Java, C, C ++ a i ʻole C # kahi e pili ai ʻaʻole wale i ke code kumu ponoʻī akā i ka binary. Makemake mākou e hana i nā hiʻohiʻona hou i nā ala i koi ʻole ai i ka hoʻokaʻawale hou ʻana o nā binaries, nā liki, a DLL paha.
OCP ma ka pōʻaiapili SOLID
Ua ʻike mua mākou i ke ʻano SRP o ke kuleana hoʻokahi e ʻōlelo ana he hoʻokahi wale nō kumu e hoʻololi ai i kahi module. Kūpono nā loina OCP a me SRP. ʻO ka pāʻālua i hoʻolālā ʻia e pili ana i ke kumumanaʻo SRP e mahalo i nā kumu OCP. Ke loaʻa iā mākou kahi code hoʻokahi wale nō kumu e loli ai, ka hoʻolauna ʻana i kahi hiʻohiʻona hou e hoʻokumu i kumu kumu no ka hoʻololi. No laila e uhaʻi ʻia ka SRP a me ka OCP. Pēlā nō, inā he code kā mākou e hoʻololi wale ai ke loli kāna hana nui a noho mau ʻole ke hoʻohui ʻia nā hana hou, no laila e pili ana i ka OCP, mahalo nui ia iā SRP pū kekahi.
ʻAʻole ia he kumu e alakaʻi mau ana ʻo SRP i OCP a i ʻole ka hope, akā i ka hapanui o nā hihia inā pili ʻia kekahi o lākou, maʻalahi ka loaʻa ʻana o ka lua.
Mai kahi ʻike ʻenehana wale nō, maʻalahi ka Maʻamau Open / Closed. ʻO kahi pilina maʻalahi ma waena o ʻelua mau papa, e like me ka mea ma lalo, e uhaʻi i ke kumu OCP.
Hoʻohana pololei ka mea hoʻohana i ka papa Logic. Inā pono mākou e hoʻokō i kahi papa Logic ʻelua i kahi ala e hiki ai iā mākou ke hoʻohana i nā mea o kēia manawa a me ka mea hou, pono e hoʻololi i ka papa Logic e kū nei. Hoʻopili pololei ka mea hoʻohana i ka hoʻokō ʻana o ka noʻonoʻo, ʻaʻohe ala no mākou e hoʻolako i kahi loiloi hou me ka ʻole o ka hopena o kēia wā. A ke kamaʻilio mākou e pili ana i nā ʻōlelo statically typed, hiki i ka papa mea hoʻohana ke koi aku i nā loli pū kekahi. Inā mākou e kamaʻilio e pili ana i nā ʻōlelo i hōʻuluʻulu ʻia, ʻoiaʻiʻo e hiki i ka mea hoʻohana ke hoʻokō a me ka Logic i hoʻokō ʻia a i ʻole ka hale waihona puke hōʻeuʻeu e koi i ka recompilation a me ka lawe ʻana, ʻoi aku ka maikaʻi e hōʻole inā hiki.
Me ke kuhikuhi ʻana i ka papahana ma mua, hiki iā mākou ke hōʻemi i kēlā me kēia papa e hoʻohana pololei i kahi papa ʻē aʻe, hiki ke alakaʻi i ka hana hewa i ke kumu Open / Closed.
E manaʻo mākou makemake mākou e kākau i kahi papa i hiki ke hāʻawi i ka holomua "i ka pākēneka" o kahi faila i hoʻoiho ʻia, ma o kā mākou noi. ʻElua mau papa nui e loaʻa iā mākou, kahi holomua a me kahi faila, a ke manaʻo nei wau makemake mākou e hoʻohana iā lākou penei:
hana hōʻikeItCanGetTheProgressOfAFileAsAPercent () {
$ faile = Kōnae hou ();
$ faile-> loa = 200;
$ faile-> hoʻouna = 100;
$ holomua = holomua hou ($ faile);
$ kēia-> assertEquals (50, $ holomua-> getAsPercent ());
}
I kēia code he poʻe hoʻohana mākou i ka holomua. Makemake mākou e kiʻi i kahi waiwai ma ke ʻano he pākēneka, me ka nānā ʻole i ka nui o ka faila maoli. Hoʻohana mākou i ka faile ma ke ʻano he ʻike. Loaʻa ka lōʻihi o kahi faila ma nā bytes a me kahi kahua i kapa ʻia i hoʻouna ʻia e hōʻike ana i ka nui o ka ʻike i hoʻouna ʻia i ka mea hoʻoiho. ʻAʻole mālama iā mākou pehea e hoʻonui ai kēia mau waiwai i ka noi. Hiki iā mākou ke kuhi aia kekahi hana hoʻokalakupua e hana nei i kēia na mākou, no laila i kahi hoʻokolohua hiki iā mākou ke hoʻonohonoho kikoʻī iā lākou.
Kōnae papa {
lehulehu $ lōʻihi;
lehulehu $ hoounaia;
}
ʻO ka papa Kōnae kahi mea ʻikepili maʻalahi wale nō i loko o nā kahua ʻelua. Pono e komo pū kekahi mau ʻike ʻē aʻe a me nā ʻano, e like me filename, ala, ala pili, papa kuhikuhi o kēia manawa, ʻano, nā ʻae, a pēlā aku.
holomua papa {
waihona $ pilikino;
hana __construct (File $ faile) {
$ kēia-> faila = $ faile;
}
hana getAsPercent () {
hoʻihoʻi $ kēia-> faila-> i hoʻouna ʻia * 100 / $ kēia-> faile-> lōʻihi;
}
}
ʻO ka holomua kahi papa e ʻae i kahi faila i kāna mea kūkulu. No ka maopopo, ua kuhikuhi mākou i ka ʻano loli i nā palena kūkulu. Aia kahi ala pono hoʻokahi ma ka Holomua, getAsPercent (), kahi e lawe i nā waiwai i hoʻouna ʻia a me ka lōʻihi mai File a hoʻolilo iā lākou i pākēneka. Simple a hana ia.
Kuhi paha kēia kuhi, akā haki ia i ke kumu Open / Closed.
Akā no ke aha?
A pehea?
Pono kēlā me kēia noi e ulu ma kahi o ka manawa i nā hiʻohiʻona hou. Hiki i kahi hiʻohiʻona hou no kā mākou noi ke ʻae i ke kahe mele ma kahi o ka hoʻoiho ʻana i nā faile. Hōʻike ʻia ka lōʻihi o ka faile ma nā bytes, ka lōʻihi o ke mele i kekona. Makemake mākou e hāʻawi i kahi pā holomua i kā mākou poʻe hoʻolohe, akā hiki iā mākou ke hoʻohana hou i ka papa i kākau ʻia ma luna?
ʻAʻole hiki iā mākou ke hiki. Hoʻopili ʻia kā mākou holomua i File. Hiki iā ia ke mālama i ka ʻike faila, ʻoiai hiki ke hoʻohana ʻia i ka ʻike mele. Akā e hana i kēlā mea pono mākou e hoʻololi ia, pono mākou e hoʻomaopopo i ka holomua i ka mele a me nā faila. Inā hoʻokō kā mākou hoʻolālā me OCP, ʻaʻole pono mākou e hoʻopā i ka faile a i ʻole ka holomua. Hiki iā mākou ke hoʻohana hou i ka holomua a noi iā ia i nā mele.
Loaʻa ka maikaʻi o nā ʻōlelo i kikokiko ʻia i ka mālama ʻana i nā ʻano mea i ka manawa holo. ʻAe kēia iā mākou e hemo i ka typehint mai ka mea kūkulu holomua a e hoʻomau ka hana o ke code.
holomua papa {
waihona $ pilikino;
hana __construct ($ faile) {
$ kēia-> faila = $ faile;
}
hana getAsPercent () {
hoʻihoʻi $ kēia-> faila-> i hoʻouna ʻia * 100 / $ kēia-> faile-> lōʻihi;
}
}
Hiki iā mākou ke hoʻolana i kekahi mea ma Holomua. A i kekahi mea, manaʻo wau i kekahi mea:
papa mele {
lehulehu $ lōʻihi;
lehulehu $ hoounaia;
lehulehu $ artist;
lehulehu $ album;
lehulehu $ hoʻokuʻuDate;
hana kiʻiAlbumCoverFile () {
hoʻihoʻi 'Nā kiʻi / Nā uhi /'. $ kēia-> mea pena kiʻi. '/'. $ kēia-> album. '.png';
}
}
A ʻo ka papa Mele e like me ka mea ma luna e holo pono. Hiki iā mākou ke hoʻāʻo maʻalahi iā ia me kahi hōʻike like loa me File.
hana hōʻikeItCanGetTheProgressOfAMusicStreamAsAPercent () {
$ mele = Mele hou ();
$ mele-> loa = 200;
$ mele-> hoʻouna = 100;
$ holomua = holomua hou ($ mele);
$ kēia-> assertEquals (50, $ holomua-> getAsPercent ());
}
No laila hiki ke hoʻohana ʻia i kahi ʻike i ana ʻia me ka papa Holomua. E hoʻokau paha iā ia i ke code ma ka hoʻololi ʻana i ka inoa loli.
holomua papa {
pilikino $ hiki ke ana
hana __construct ($ hiki ke ana ʻike ʻia) {
$ kēia-> hiki ke ana helu = $ hiki ke ana ʻia Contont;
}
hana getAsPercent () {
hoʻihoʻi $ kēia-> hiki ke ana Content-> hoʻouna ʻia * 100 / $ kēia-> anaContent-> lōʻihi;
}
}
Ke kuhikuhi mākou i ka faile ma ke ʻano typehint, manaʻo mākou e pili ana i ka mea a kā mākou papa e mālama ai. Ua maopopo a inā hele mai kekahi mea ʻē aʻe, e haʻi mai kahi kuhi hewa nui iā mākou.
Upapa e hoʻokahuli i kahi hana o ka papa kumu i hoʻohanohano ʻole ʻia ka ʻaelike papa kumu e ka papa i lawe ʻia.
ʻAʻole mākou makemake e hoʻopau i ka hoʻāʻo ʻana e kāhea i nā kiʻina a i ʻole ke komo ʻana i nā kahua i nā mea i kū ʻole i kā mākou ʻaelike. I ka manawa i loaʻa iā mākou kahi typehint, ua hōʻike ʻia ka ʻaelike e ia. Nā kahua a me nā ʻano o ka papa Kōnae. I kēia manawa ʻaʻohe a mākou mea, hiki iā mākou ke hoʻouna i kekahi mea, ʻo ke aho a he hopena maikaʻi ʻole paha ia.
ʻOiai ua like ka hopena hopena ma nā hihia ʻelua, ʻo ia hoʻi ka haki ʻana o ke code, ua hoʻopuka ka mea mua i kahi leka maikaʻi. He pouli loa nae keia. ʻAʻohe ala e ʻike ai i ke ʻano o ka loli – he kaula i kā mākou hihia – a he aha nā waiwai i ʻimi ʻia a ʻaʻole i loaʻa. He paʻakikī ke hoʻopau a hoʻoponopono i ka pilikia. Pono ka mea papahana e wehe i ka papa Progress, heluhelu a hoʻomaopopo. ʻO ka ʻaelike, i kēia hihia, inā ʻaʻole ʻoe e wehewehe i ka typehint, ʻo ia defihoʻopau ʻia e ke ʻano o ka Holomua. He ʻaelike i kuhi ʻia i ʻike wale ʻia e Progress. I kā mākou laʻana, ʻo ia defiHoʻopau ʻia ma ke komo ʻana i nā kahua ʻelua, hoʻouna ʻia a me ka lōʻihi, ma ke ala getAsPercent(). Ma ke ola maoli, hiki ke paʻakikī a paʻakikī ke ʻike ʻia ka ʻaelike i ʻōlelo ʻia ma ka ʻimi wale ʻana i kekahi mau kekona ma ka papa.
Paipai wale ʻia kēia hopena inā ʻaʻole hiki ke hoʻokō maʻalahi ʻia kekahi o nā ʻōlelo aʻoaʻo ʻē aʻe ma lalo a i ʻole inā e hoʻokau lākou i nā loli kūloko i kū ʻole i ka hana.
Ercole Palmeri
Ua hoʻopuka ka UK CMA i kahi ʻōlelo aʻo e pili ana i ka hana a Big Tech i ka mākeke naʻauao. Aia…
ʻO ka "Case Green" Decree, i hoʻokumu ʻia e ka European Union e hoʻonui ai i ka ikehu o nā hale, ua hoʻopau i kāna kaʻina hana kānāwai me…
Hōʻike ʻia ka hōʻike makahiki a Casaleggio Associati ma Ecommerce ma Italia. Hōʻike i kapa ʻia ʻo "AI-Commerce: nā palena o Ecommerce me Artificial Intelligence".…
ʻO ka hopena o ka hana ʻenehana mau a me ka kūpaʻa i ke kaiapuni a me ka pono o nā kānaka. Hāʻawi ʻo Bandalux iā Airpure®, kahi hale lole…