Կառուցվածքային նախագծման ձևանմուշներ

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Jump to navigation Jump to search

Կառուցվածքային նախագծման ձևանմուշներ, նախագծման ձևանմուշներ, որոնցում դիտարկվում է թե ինչպես դասերից և օբյեկտներից ձևավորել ավելի մեծ ստրուկտուրաներ։

Ընդհանուր հասկացողություններ[խմբագրել | խմբագրել կոդը]

  • Client - հայցող
  • Instance - նմուշ
  • Implementation - իրականացում
  • Product - արգասիք

Կիրառություն[խմբագրել | խմբագրել կոդը]

Դասի մակարդակի կառուցվածքային ձևանմուշները իրականացման և ինտերֆեյսներից կոմպոզիցիայի ստեղծման համար օգտագործում են ժառանգում։ Ձևանմուշի կիրառման պարզագույն օրինակ է բազմակի ժառանգման օգտագործումը մի քանի դասերը մեկում միավորելու համար։ Արդյունքում ստացվում է մի դաս, որն ունի իր բոլոր ծնողների հատկությունները։ Այս ձևանմուշը հատկապես օգտակար է, երբ պետք է իրագործել իրարից անկախ մշակված մի քանի գրադարանների համատեղ աշխատանք։

Ձևանմուշներ[խմբագրել | խմբագրել կոդը]

  • Ադապտեր - ադապտացնում է մի դասի ինտերֆեյսը մյուսին՝ ինչին որ սպասում է հայցողի դասը։
    • Խողովակաշարային ադապտեր (անգլ.՝ Adapter pipeline) - Վերլուծելու (անգլ.՝ debug) նպատակով օգտագործում է բազմակի ադապտորներ։[1]
    • Ինտերֆեյսի մոդիֆիկացված ձևանմուշ (անգլ.՝ Retrofit Interface Pattern).[2][3] Ադապտերը որպես նոր ինտերֆեյս միևնույն ժամանակ օգտագործվում է բազմակի դասերի համար։
  • Ագրեգատ (անգլ.՝ Aggregate pattern) - հանդիսանում է Կազմող ձևանմուշի օրինակ դուստր դասերի ագրեգատացնող մեթոդով։
  • Կամուրջ - աբստրակցիան և իրականացումը միմյանցից բաժանում է այնպես, որ վերջիններս կարող փոփոխվել միմյանցից անկախ
    • Գերեզմանաքար (անգլ.՝ Tombstone) - օբյեկտի "միջակա" որոնումը պարունակում է օբյեկտի գտնվելու վայրը։[4]
  • Կազմող - օբյեկտների ծառատիպ կառուցվածք, որտեղ յուրաքանչյուր օբյեկտ ունի նույն ինտերֆեյսը։
  • Դեկորատոր - իրականացման ժամանակ դասին ավելացնում է լրացուցիչ հնարավորություն, որն ապահովում է ճկուն այլընտրանք դասերի ֆունկցինալությունն ընդլայնելու համար։
  • Ընդարձակելիություն (անգլ.՝ Extensibility pattern) կամ Framework - բարդ կոդը թաքցնում է պարզ ինտերֆեյսի հետևում
  • Ճակատ - գոյություն ունեցող ինտերֆեյսի համար ստեղծում է պարզեցված ինտեֆեյս ընդհանուր խնդիրներում այն օգտագործելու համար։
  • Հարմարեցնող - մեծ քանակությամբ օբյեկտներ ունեն ընդհանուր հատկություններ՝ հիշողության տարածքն արդյունավետ օգտագործելու համար։
  • Խողովակներ և ֆիլտրեր (անգլ.՝ Pipes and filters) - պրոցեսների շղթա, որտեղ մեկի ելքը հանդիսանում է մյուսի սկիզբ։
  • Անձնական դաս (անգլ.՝ Private class data pattern) - սահմանափակում է հասանելիությունը։
  • Պրոքսի - դասը հանդիսանում է ինտերֆեյս այլ բաների համար։

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. «Adapter Pipeline»։ Cunningham & Cunningham, Inc.։ 2010-12-31։ Արխիվացված օրիգինալից-ից 2010-12-31-ին։ Վերցված է 2012-07-20 
  2. BobbyWoolf (2002-06-19)։ «Retrofit Interface Pattern»։ Cunningham & Cunningham, Inc.։ Արխիվացված օրիգինալից-ից 2002-06-19-ին։ Վերցված է 2012-07-20 
  3. MartinZarate (2010-12-31)։ «External Polymorphism»։ Cunningham & Cunningham, Inc.։ Արխիվացված օրիգինալից-ից 2010-12-31-ին։ Վերցված է 2012-07-20 
  4. «Tomb Stone»։ Cunningham & Cunningham, Inc.։ 2007-06-17։ Արխիվացված օրիգինալից-ից 2007-06-17-ին։ Վերցված է 2012-07-20