10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

He maha nga wa ka tutaki ahau ki nga kaiwhakawhanake kaore ano kia rongo mo nga kaupapa SOLID (tatou i korero mo ratou i konei. — Whakamaori.) he kaupapa whakangao ahanoa ranei (OOP), kua rongo ranei koe, engari kaua e whakamahia i roto i nga mahi. Ko tenei tuhinga e whakaatu ana i nga painga o nga kaupapa OOP hei awhina i te kaiwhakawhanake i roto i ana mahi o ia ra. Ko etahi o ratou e tino mohiotia ana, ko etahi kaore i te tino nui, na reira ka whai hua te tuhinga mo te hunga timata me nga kaiwhakatakoto kaupapa mohio.

Ka whakamahara matou: mo nga kaipānui Habr katoa - he utu 10 ruble ina whakauru ana koe ki tetahi akoranga Skillbox ma te whakamahi i te waehere whakatairanga Habr.

Ka tūtohu a Skillbox: Matauranga ipurangi "Kaiwhakawhanake Java".

MATEO (Kaua e Tukurua)

He maataapono tino ngawari, ko te tino kaupapa e marama ana mai i te ingoa: "Kaua e korero ano." Mo te kaitoha, ko te tikanga me karo i nga waehere taarua, me te whai waahi ki te whakamahi tangohanga i roto i a raatau mahi.

Mena e rua nga waahanga tukurua i roto i te waehere, me whakakotahi ki te tikanga kotahi. Mena he nui ake i te kotahi te whakamahi i tetahi uara kua oti te tohu, he mea tika ki te huri ki te taumau a te iwi.

He mea tika tenei kia ngawari ai te waehere me te ngawari ki te pupuri, koinei te kaupapa matua o OOP. Kaua rawa koe e whakamahi nui i te uniana, na te mea ka kore taua waehere e paahi i te manatoko me te OrderId me te SSN.

Huringa Whakakapi

Kei te whanake haere tonu nga hua rorohiko a te nuinga o nga kamupene. Ko te tikanga me whakarereke te waehere, me tautoko. Ka taea e koe te whakapai ake i to oranga ma te whakamahi i te encapsulation. Ma tenei ka taea e koe te whakamatautau me te pupuri i to turanga waehere o naianei. Anei tetahi tauira.

Mena ka tuhi koe ki Java, na tautapa tikanga motuhake me nga taurangi ma te taunoa.

Tikanga tuwhera/kati

Ka ngawari te mahara ki tenei kaupapa ma te panui i te korero e whai ake nei: "Me tuwhera nga hinonga rorohiko (nga karaehe, nga waahanga, nga mahi, me etahi atu.) mo te toronga, engari ka kati mo te whakarereke." I roto i te mahi, ko te tikanga ka taea e ratou te whakarereke i o raatau whanonga me te kore e whakarereke i te waehere puna.

He mea nui te maataapono ina hiahia nga huringa ki te waehere puna te whakahou i te waehere, te whakamatautau wae, me etahi atu tikanga. Ko te Waehere e whai ana i te maapono tuwhera/kati kare e huri ina whakaroahia, no reira he iti noa atu nga raru.

Anei tetahi tauira o te waehere e takahi ana i tenei kaupapa.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Mena ka hiahia koe ki te whakarereke i tetahi mea i roto, ka roa te wa, na te mea me whakarereke nga waahanga katoa o te waehere e hono ana ki te waahanga e hiahiatia ana.

Ma te ara, ko te tuwhera-kati tetahi o nga kaupapa o SOLID.

Tikanga Kawenga Kotahi (SRP)

Ko tetahi atu kaupapa mai i te huinga SOLID. Te na ô ra e “hoê noa tumu e taui ai te piha haapiiraa.” Kotahi anake te rapanga ka whakaotihia e te akomanga. He maha pea nga tikanga, engari ka whakamahia anake hei whakaoti rapanga noa. Ko nga tikanga me nga taonga katoa me mahi tenei anake.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Ko te uara o tenei maataapono ko te wetewete i te hono i waenga i te waahanga rorohiko takitahi me te waehere. Mena ka taapirihia e koe nga taumahinga neke atu i te kotahi ki te karaehe, ka whakaatu mai he hononga i waenga i nga mahi e rua. Na, ki te whakarereke koe i tetahi o enei, he nui te tupono ki te whakangaro i te tuarua, e hono ana ki te tuatahi. Ko te tikanga ko te whakanui ake i nga huringa whakamatautau kia mohio ai nga raru katoa i mua.

Tikanga Hurihuri Whakawhirinaki (DIP)

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Kei runga ake nei he tauira waehere kei te whakawhirinaki a AppManager ki te EventLogWriter, ka hono tata ki a AppManager. Mena ka hiahia koe ki tetahi huarahi rereke hei whakaatu i te panui, ahakoa pana, SMS, imeera ranei, me huri koe i te akomanga AppManager.

Ka taea te whakatau i te raruraru ma te whakamahi i te DIP. Na, hei utu mo AppManager, ka tono matou i tetahi EventLogWriter, ka whakauruhia ma te whakamahi i te anga.

Ma te DIP ka taea te whakakapi i nga waahanga takitahi me etahi atu ma te whakarereke i te waahanga whakawhirinaki. Ma tenei ka taea te whakarereke i tetahi waahanga me te kore e pa ki etahi atu.

Te titonga hei utu mo te tuku iho

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia KaiwhakawhanakeE rua nga huarahi matua ki te whakamahi ano i te waehere: te tuku iho me te hanganga, kei a raua ano nga painga me nga ngoikoretanga. I te nuinga o te wa ka pai ake te tuarua na te mea he ngawari ake.

Ma te tito ka taea e koe te whakarereke i te whanonga o te karaehe i te wa whakahaere ma te tautuhi i ona ahuatanga. I te wa e whakatinana ana i nga atanga, ka whakamahia te polymorphism, ka kaha ake te whakatinanatanga.

Ahakoa ko Effective Java na Joshua Bloch te tohutohu ki te whiriwhiri i te titonga i runga i te tuku iho.

Barbara Liskov Kaupapa Whakakapi (LSP)

Ko tetahi atu maataapono mai i te kete taputapu SOLID. E kii ana me whakakapi nga momo iti mo te momo matua. Arā, ko nga tikanga me nga mahi e mahi tahi ana me te superclass me kaha ki te mahi me te kore raru o ona karaehe.

Ko te LSP e hono ana ki te maapono kawenga kotahi me te kaupapa kawenga mahi tahi. Mena he maha ake nga mahi a te karaehe atu i te karaehe iti, karekau e tautokohia e te hunga o muri etahi o nga mahi, ka takahia tenei kaupapa.

Anei tetahi waahanga waehere e whakahē ana ki te LSP.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Ko te tikanga horahanga(Rectangle r) he tatau i te horahanga o te Rectangle. Ka tutuki te papatono i muri i te mahi i te Tapawha na te mea ehara ko te Tapawha i te Tapawhā i konei. E ai ki te maapono LSP, ko nga mahi e whakamahi tohutoro ana ki nga karaehe turanga me kaha ki te whakamahi i nga taonga o nga karaehe i ahu mai me te kore he tohutohu taapiri.

Ko tenei maataapono, he whakamaramatanga motuhake o te momo iti, na Barbara Liskov i whakatakoto i roto i te kaupapa matua o te huihuinga i te tau 1987 i tapaina ko "Data Abstraction and Hierarchy," no reira tona ingoa.

Atanga Matapono Ritua (ISP)

Ko tetahi atu maapono SOLID. E ai ki a ia, he atanga kaore i te whakamahia kia kaua e whakatinanahia. Ko te whai i tenei maataapono ka awhina te punaha ki te noho ngawari me te pai mo te whakahou i te wa ka huri nga huringa ki te arorau whakahaere.

I te nuinga o nga wa, ka puta tenei ahuatanga ina he maha nga mahi a te atanga i te wa kotahi, ka hiahia te kaihoko ki tetahi o enei.

I te mea he mahi uaua te tuhi atanga, he uaua te whakarereke i muri i te otinga o te mahi me te kore e pakaru tetahi mea.

Ko te painga o te kaupapa ISP i Java ko nga tikanga katoa me whakatinana i te tuatahi, katahi ka taea e nga karaehe te whakamahi. No reira, ma te maapono ka taea te whakaiti i te maha o nga tikanga.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Papatonotanga mo te atanga, ehara i te whakatinanatanga

He maamaa nga mea katoa i konei mai i te taitara. Ko te whakamahi i tenei maataapono ka arahi ki te hanga i te waehere ngawari ka taea te mahi me tetahi whakatinanatanga hou o te atanga.

Me whakamahi koe i te momo atanga mo nga taurangi, mo nga momo whakahoki, mo te momo tohenga tikanga ranei. Ko tetahi tauira ko te whakamahi i te SuperClass kaua ko SubClass.

Koina:

Rarangi tau= getNumbers();

Engari kaore:

ArrayList tau = tikiNumbers();

Anei he whakatinanatanga whaitake o nga mea kua korerohia i runga ake nei.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Te kaupapa o te tuku

He tauira noa ko nga tikanga rite() me te hashCode() i Java. Ina e tika ana kia whakatauritea nga mea e rua, ka tukuna tenei hohenga ki te karaehe e rite ana, kaua ki te kaihoko.

Ko te painga o te kaupapa ko te kore he taarua o te waehere, he ngawari noa te whakarereke i te whanonga. Ka pa ano ki te tuku huihuinga.

10 Nga Tikanga Papatono-Hanga-Hanga Me mohio ia Kaiwhakawhanake

Ko enei maataapono katoa ka taea e koe te tuhi i nga waehere ngawari, ataahua me te pono me te whakakotahitanga teitei me te hononga iti. Ko te tikanga, he pai te ariā, engari mo te kaiwhakawhanake ki te whakamahi i te matauranga kua riro, me mahi. Kia mohio koe ki nga maataapono OOP, ko to mahi ka whai ake ko te ako i nga tauira hoahoa hei whakaoti rapanga whanaketanga rorohiko noa.

Ka tūtohu a Skillbox:

Source: will.com

Tāpiri i te kōrero