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

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

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

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

  • 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 թ․ դեկտեմբերի 31. Արխիվացված է օրիգինալից 2011 թ․ մարտի 3-ին. Վերցված է 2012 թ․ հուլիսի 20-ին.
  2. BobbyWoolf (2002 թ․ հունիսի 19). «Retrofit Interface Pattern». Cunningham & Cunningham, Inc. Արխիվացված է օրիգինալից 2011 թ․ մարտի 3-ին. Վերցված է 2012 թ․ հուլիսի 20-ին.
  3. MartinZarate (2010 թ․ դեկտեմբերի 31). «External Polymorphism». Cunningham & Cunningham, Inc. Արխիվացված է օրիգինալից 2011 թ․ մարտի 3-ին. Վերցված է 2012 թ․ հուլիսի 20-ին.
  4. «Tomb Stone». Cunningham & Cunningham, Inc. 2007 թ․ հունիսի 17. Արխիվացված է օրիգինալից 2011 թ․ մարտի 3-ին. Վերցված է 2012 թ․ հուլիսի 20-ին.