Ի՞նչ տարբերություն: ինչու մեկը մյուսի վրա

Մեր օրերում կան շատ տարբեր ճարտարապետություններ և պարադիգմներ, որոնք ծրագրավորողները կարող են օգտագործել իրենց ծրագրաշարը մշակելու համար: Այնուամենայնիվ, կա երկու ընդհանուր մեկը, դա օբյեկտի վրա հիմնված և բաղադրիչ կողմնորոշված ​​ծրագրավորումն է: Ո՞րն օգտագործել և ո՞րն է տարբերությունը: Մենք դրա մասին կխոսենք այս հոդվածում

Ինչո՞վ է տարբերվում այս երկուսը:

Ինտերֆեյս ընդդեմ ժառանգության

Օբյեկտ-կողմնորոշված ​​ծրագրավորման մեջ ծրագրաշարը հաճախ մոդելավորվում է որպես դասերի բարդ հիերարխիա, որոնք նման են բիզնես խնդրին, որը ծրագրաշարը փորձում է լուծել: Ծրագրավորողները հաճախ կվերօգտագործեն գոյություն ունեցող կոդը՝ ժառանգելով այն գոյություն ունեցող բազային դասից և մասնագիտացնելով դրա վարքագիծը: Սա չի կարելի ասել բաղադրիչի վրա հիմնված ծրագրավորման դեպքում: Բաղադրիչների վրա հիմնված ծրագրավորման մեջ բազմակի օգտագործման հնարավորությունը ձեռք է բերվում ինտերֆեյսի ընդլայնման միջոցով, որը հետագայում յուրաքանչյուր բաղադրիչ մասնագիտանում է տվյալ բաղադրիչի կարիքներով:

Սև արկղ ընդդեմ սպիտակ արկղի

Օբյեկտ-կողմնորոշված ​​ծրագրավորման մեջ ծրագրավորողներից շատերը պետք է ծանոթ լինեն բազային դասի իրականացման մանրամասներին: Վերօգտագործման այս ձևը կոչվում է սպիտակ տուփի կրկնակի օգտագործման հնարավորություն: Այս տեսակի կրկնակի օգտագործումը թույլ չտվեց երրորդ կողմի շրջանակի հեշտ ադապտացիան և ընդլայնել ծրագրաշարը ավելի մեծ մասշտաբով: Մյուս կողմից, բաղադրիչի վրա հիմնված ծրագրավորումը նպաստում է սև արկղի կրկնակի օգտագործմանը: Այս տեսակի կրկնակի օգտագործման հնարավորությունը յուրաքանչյուր բաղադրիչի թույլ է տալիս օգտագործել գոյություն ունեցող բաղադրիչը առանց հոգալու դրա ներքին մասերի մասին, քանի դեռ բաղադրիչը համապատասխանում է նախապես սահմանված գործողությունների կամ միջերեսների շարքին:

Մոնոլիտ ընդդեմ բլոկների

Ծրագրային ապահովումը, որը ստեղծվում է օբյեկտի վրա ուղղված մտքի միջոցով, սովորաբար հանգեցնում է մոնոլիտ երկուական կոդին, որը կիսում է նույն գործընթացը, հասցեների տարածքը, տեղակայման միավորը, անվտանգության արտոնությունը և այլն: Սա կարող է մեծացնել բազմաթիվ ինժեների աշխատանքի բարդությունը, քանի որ նրանք պետք է կիսեն ամբողջ աղբյուրը: ֆայլեր ծրագրի աշխատանքի համար: Սա չի կարելի ասել բաղադրիչի վրա հիմնված ծրագրավորման դեպքում: Բաղադրիչների վրա հիմնված ծրագրավորման կատարյալ անալոգիան LEGOբլոկն է: Թեև կարող է անհրաժեշտ լինել հավելվածների հիմնական բաղադրիչները (հիմնադրամները) կիսել, յուրաքանչյուր բաղադրիչ աշխատում է առանձին և կարող է աշխատել ինքնուրույն՝ առանց այլ բաղադրիչների վրա ազդելու անհանգստության կամ ծրագրաշարի ամբողջական կոդ ունենալու անհրաժեշտության:

Չամրացված ինտեգրում ընդդեմ ամուր ինտեգրման

Օբյեկտ-կողմնորոշված ​​և բաղադրիչ-կողմնորոշված ​​ծրագրավորման միջև մեկ այլ տարբերություն ուշադրության կենտրոնում է: Օբյեկտ-կողմնորոշված ​​մտածողությունը հակված է կենտրոնանալ օբյեկտների միջև ամուր ինտեգրման վրա, որը սովորաբար փոքր է, որտեղ առարկաները վերաօգտագործվում են ամբողջ ծրագրաշարի մեջ, մինչդեռ բաղադրիչ-կողմնորոշված ​​մտածողությունը հակված է կենտրոնանալու յուրաքանչյուր բաղադրիչի պատասխանատվության վրա և հիմնականում գործում է անկախ, ինչը կարող է կամ ոչ: կիսել ընդհանուր առարկաները այլ բաղադրիչների հետ:

Յուրաքանչյուր կողմնորոշման առավելությունները

Օբյեկտ-կողմնորոշված ​​ծրագրավորում

- Բարելավել արտադրանքի զարգացման արտադրողականությունը

Օբյեկտ-կողմնորոշված ​​ծրագրավորումը մոդուլային է, քանի որ դրանք բիզնես տրամաբանությունը բաժանում են օբյեկտի վրա հիմնված համակարգի, որը ընդլայնելի է, քանի որ մենք կարող ենք նոր առանձնահատկություններ և վարքագիծ ավելացնել օբյեկտի մեջ: Դուք կարող եք նաև վերօգտագործել օբյեկտն ամբողջ հավելվածում` առանց օբյեկտը նորից գրելու անհրաժեշտության: Այս գործոնների շնորհիվ օբյեկտի վրա հիմնված ծրագրավորումը կարող է բարելավել արտադրանքի զարգացման արտադրողականությունը:

- Բարելավել ծրագրային ապահովման սպասարկումը

Քանի որ Object-oriented-ը մոդուլային է, ընդարձակելի և վերօգտագործելի, ծրագրաշարի սպասարկումն ավելի հեշտ կլինի, քանի որ մենք կարիք չունեինք ծրագրաշարում չափազանց շատ փոփոխություններ կատարելու, երբ որոշ խնդիրներ կան:

- Միացնել արագ զարգացումը

Քանի որ օբյեկտի վրա հիմնված ծրագրավորումը սովորաբար ունի առանձնահատկություններով հարուստ գրադարաններ, OOP-ն թույլ է տալիս ավելի արագ զարգացում: Նախկինում մշակված կոդը կարող է նաև օգտագործվել մեկ այլ նախագծում, քանի որ կոդը պտտվում է օբյեկտի շուրջ, այլ ոչ թե որոշակի բիզնես տրամաբանության:

Բաղադրիչների վրա հիմնված ծրագրային ապահովման մշակում

- Ցածր վերահսկողության և խնամքի լրացուցիչ ծախսեր

Քանի որ ծրագրակազմը բաժանված է բաղադրիչների, ինժեներները կարիք չունեին նայելու ծրագրի մեկ այլ բաղադրիչ կամ մաս՝ որոշակի կոդի մասեր որոնելու համար: Քանի որ կոդը մեկ տեղում է, ինժեներները ավելի շատ վերահսկողություն կունենան դրա վրա և կարիք չունեին շատ անհանգստանալու, որ դրանց փոփոխությունները կազդեն այլ բաղադրիչների վրա:

- Հուսալի և արագ զարգացում

Բաղադրիչի բազմակի օգտագործման շնորհիվ այն թիմին թույլ է տալիս ավելի շատ կենտրոնանալ բիզնեսի կարիքների վրա, այլ ոչ թե կազմակերպությունների: Ավելին, բաղադրիչների վրա հիմնված դիզայնի միջոցով կառուցված համակարգերը սովորաբար ավելի հեշտ են մշակել, տեղակայել և պահպանել: Բացի այդ, բաղադրիչի վրա հիմնված ձևավորումները, ընդհանուր առմամբ, ավելի հուսալի են, քանի որ երբ ինչ-որ բան չի աշխատում, սովորաբար այն, որը խափանում է, կլինի միայն վիրավորական բաղադրիչը, այլ ոչ թե ծրագրի ամբողջական ձախողումը (դա դեռ վատ է, բայց համենայն դեպս հավելվածը հաղթեց: ամբողջությամբ չհաջողվի *wink*):