Ի՞նչ տարբերություն: ինչու մեկը մյուսի վրա
Մեր օրերում կան շատ տարբեր ճարտարապետություններ և պարադիգմներ, որոնք ծրագրավորողները կարող են օգտագործել իրենց ծրագրաշարը մշակելու համար: Այնուամենայնիվ, կա երկու ընդհանուր մեկը, դա օբյեկտի վրա հիմնված և բաղադրիչ կողմնորոշված ծրագրավորումն է: Ո՞րն օգտագործել և ո՞րն է տարբերությունը: Մենք դրա մասին կխոսենք այս հոդվածում
Ինչո՞վ է տարբերվում այս երկուսը:
Ինտերֆեյս ընդդեմ ժառանգության
Օբյեկտ-կողմնորոշված ծրագրավորման մեջ ծրագրաշարը հաճախ մոդելավորվում է որպես դասերի բարդ հիերարխիա, որոնք նման են բիզնես խնդրին, որը ծրագրաշարը փորձում է լուծել: Ծրագրավորողները հաճախ կվերօգտագործեն գոյություն ունեցող կոդը՝ ժառանգելով այն գոյություն ունեցող բազային դասից և մասնագիտացնելով դրա վարքագիծը: Սա չի կարելի ասել բաղադրիչի վրա հիմնված ծրագրավորման դեպքում: Բաղադրիչների վրա հիմնված ծրագրավորման մեջ բազմակի օգտագործման հնարավորությունը ձեռք է բերվում ինտերֆեյսի ընդլայնման միջոցով, որը հետագայում յուրաքանչյուր բաղադրիչ մասնագիտանում է տվյալ բաղադրիչի կարիքներով:
Սև արկղ ընդդեմ սպիտակ արկղի
Օբյեկտ-կողմնորոշված ծրագրավորման մեջ ծրագրավորողներից շատերը պետք է ծանոթ լինեն բազային դասի իրականացման մանրամասներին: Վերօգտագործման այս ձևը կոչվում է սպիտակ տուփի կրկնակի օգտագործման հնարավորություն: Այս տեսակի կրկնակի օգտագործումը թույլ չտվեց երրորդ կողմի շրջանակի հեշտ ադապտացիան և ընդլայնել ծրագրաշարը ավելի մեծ մասշտաբով: Մյուս կողմից, բաղադրիչի վրա հիմնված ծրագրավորումը նպաստում է սև արկղի կրկնակի օգտագործմանը: Այս տեսակի կրկնակի օգտագործման հնարավորությունը յուրաքանչյուր բաղադրիչի թույլ է տալիս օգտագործել գոյություն ունեցող բաղադրիչը առանց հոգալու դրա ներքին մասերի մասին, քանի դեռ բաղադրիչը համապատասխանում է նախապես սահմանված գործողությունների կամ միջերեսների շարքին:
Մոնոլիտ ընդդեմ բլոկների
Ծրագրային ապահովումը, որը ստեղծվում է օբյեկտի վրա ուղղված մտքի միջոցով, սովորաբար հանգեցնում է մոնոլիտ երկուական կոդին, որը կիսում է նույն գործընթացը, հասցեների տարածքը, տեղակայման միավորը, անվտանգության արտոնությունը և այլն: Սա կարող է մեծացնել բազմաթիվ ինժեների աշխատանքի բարդությունը, քանի որ նրանք պետք է կիսեն ամբողջ աղբյուրը: ֆայլեր ծրագրի աշխատանքի համար: Սա չի կարելի ասել բաղադրիչի վրա հիմնված ծրագրավորման դեպքում: Բաղադրիչների վրա հիմնված ծրագրավորման կատարյալ անալոգիան LEGO™բլոկն է: Թեև կարող է անհրաժեշտ լինել հավելվածների հիմնական բաղադրիչները (հիմնադրամները) կիսել, յուրաքանչյուր բաղադրիչ աշխատում է առանձին և կարող է աշխատել ինքնուրույն՝ առանց այլ բաղադրիչների վրա ազդելու անհանգստության կամ ծրագրաշարի ամբողջական կոդ ունենալու անհրաժեշտության:
Չամրացված ինտեգրում ընդդեմ ամուր ինտեգրման
Օբյեկտ-կողմնորոշված և բաղադրիչ-կողմնորոշված ծրագրավորման միջև մեկ այլ տարբերություն ուշադրության կենտրոնում է: Օբյեկտ-կողմնորոշված մտածողությունը հակված է կենտրոնանալ օբյեկտների միջև ամուր ինտեգրման վրա, որը սովորաբար փոքր է, որտեղ առարկաները վերաօգտագործվում են ամբողջ ծրագրաշարի մեջ, մինչդեռ բաղադրիչ-կողմնորոշված մտածողությունը հակված է կենտրոնանալու յուրաքանչյուր բաղադրիչի պատասխանատվության վրա և հիմնականում գործում է անկախ, ինչը կարող է կամ ոչ: կիսել ընդհանուր առարկաները այլ բաղադրիչների հետ:
Յուրաքանչյուր կողմնորոշման առավելությունները
Օբյեկտ-կողմնորոշված ծրագրավորում
- Բարելավել արտադրանքի զարգացման արտադրողականությունը
Օբյեկտ-կողմնորոշված ծրագրավորումը մոդուլային է, քանի որ դրանք բիզնես տրամաբանությունը բաժանում են օբյեկտի վրա հիմնված համակարգի, որը ընդլայնելի է, քանի որ մենք կարող ենք նոր առանձնահատկություններ և վարքագիծ ավելացնել օբյեկտի մեջ: Դուք կարող եք նաև վերօգտագործել օբյեկտն ամբողջ հավելվածում` առանց օբյեկտը նորից գրելու անհրաժեշտության: Այս գործոնների շնորհիվ օբյեկտի վրա հիմնված ծրագրավորումը կարող է բարելավել արտադրանքի զարգացման արտադրողականությունը:
- Բարելավել ծրագրային ապահովման սպասարկումը
Քանի որ Object-oriented-ը մոդուլային է, ընդարձակելի և վերօգտագործելի, ծրագրաշարի սպասարկումն ավելի հեշտ կլինի, քանի որ մենք կարիք չունեինք ծրագրաշարում չափազանց շատ փոփոխություններ կատարելու, երբ որոշ խնդիրներ կան:
- Միացնել արագ զարգացումը
Քանի որ օբյեկտի վրա հիմնված ծրագրավորումը սովորաբար ունի առանձնահատկություններով հարուստ գրադարաններ, OOP-ն թույլ է տալիս ավելի արագ զարգացում: Նախկինում մշակված կոդը կարող է նաև օգտագործվել մեկ այլ նախագծում, քանի որ կոդը պտտվում է օբյեկտի շուրջ, այլ ոչ թե որոշակի բիզնես տրամաբանության:
Բաղադրիչների վրա հիմնված ծրագրային ապահովման մշակում
- Ցածր վերահսկողության և խնամքի լրացուցիչ ծախսեր
Քանի որ ծրագրակազմը բաժանված է բաղադրիչների, ինժեներները կարիք չունեին նայելու ծրագրի մեկ այլ բաղադրիչ կամ մաս՝ որոշակի կոդի մասեր որոնելու համար: Քանի որ կոդը մեկ տեղում է, ինժեներները ավելի շատ վերահսկողություն կունենան դրա վրա և կարիք չունեին շատ անհանգստանալու, որ դրանց փոփոխությունները կազդեն այլ բաղադրիչների վրա:
- Հուսալի և արագ զարգացում
Բաղադրիչի բազմակի օգտագործման շնորհիվ այն թիմին թույլ է տալիս ավելի շատ կենտրոնանալ բիզնեսի կարիքների վրա, այլ ոչ թե կազմակերպությունների: Ավելին, բաղադրիչների վրա հիմնված դիզայնի միջոցով կառուցված համակարգերը սովորաբար ավելի հեշտ են մշակել, տեղակայել և պահպանել: Բացի այդ, բաղադրիչի վրա հիմնված ձևավորումները, ընդհանուր առմամբ, ավելի հուսալի են, քանի որ երբ ինչ-որ բան չի աշխատում, սովորաբար այն, որը խափանում է, կլինի միայն վիրավորական բաղադրիչը, այլ ոչ թե ծրագրի ամբողջական ձախողումը (դա դեռ վատ է, բայց համենայն դեպս հավելվածը հաղթեց: ամբողջությամբ չհաջողվի *wink*):