257.02K
Категория: Базы данныхБазы данных

Design patterns

1.

Design patterns in c#
თეიმურაზ უზუნალოვი

2.

Unit of work
C#-ში unit of work მართავს მეხსიერების მონაცემთა ბაზის CRUD ოპერაციებს ერთეულებს, როგორც
ერთი ტრანზაქციას. მარტივი სიტყვებით, შეგვიძლია ვთქვათ, რომ თუ გვსურს ტრანზაქციების
განხორციელება Entity Framework და Repository Design Patterns-ის გამოყენებისას, მაშინ უნდა
გამოვიყენოთ unit of work. ასე რომ, თუ ერთ-ერთი ოპერაცია ვერ შესრულდება, როგორც ტრანზაქციის
ნაწილი, მონაცემთა ბაზის მთელი ოპერაციები უკან დაბრუნდება. ეს ნიშნავს, რომ ან მონაცემთა ბაზის
ყველა ოპერაცია წარმატებით დასრულდა, ან არცერთი მათგანი.
Repository Pattern-ში, Unit of Work (UoW) არის design pattern, რომელიც გამოიყენება ტრანზაქციების
სამართავად და მონაცემთა თანმიმდევრულობის უზრუნველსაყოფად თქვენს აპლიკაციაში მონაცემთა
ბაზასთან მუშაობისას. ის ეხმარება მონაცემთა ბაზის მრავალჯერადი ოპერაციების კოორდინაციას
ერთი ტრანზაქციის ფარგლებში. unit of work-ის მთავარი იდეა არის მონაცემთა ბაზის
დაკავშირებული ოპერაციების ჯგუფის განხილვა, როგორც ერთი ერთეული ან ტრანზაქცია. ეს
ნიშნავს, რომ ან განყოფილებაში ყველა ოპერაცია წარმატებულია ან ყველა წარუმატებელი. ეს
უზრუნველყოფს მონაცემთა მთლიანობას და თანმიმდევრულობას.

3.

Dependency injection
Dependency Injection Design Pattern C#-ში გვაძლევს საშუალებას შევიმუშავოთ Loosely Coupled Software Components.
სხვა სიტყვებით რომ ვთქვათ, შეგვიძლია ვთქვათ, რომ dependency injection design pattern გამოიყენება პროგრამული
უზრუნველყოფის კომპონენტებს შორის მჭიდრო შეერთების შესამცირებლად. შედეგად, ჩვენ შეგვიძლია მარტივად
ვმართოთ მომავალი ცვლილებები და სხვა სირთულეები ჩვენს აპლიკაციაში. ამ შემთხვევაში, თუ ჩვენ შევცვლით ერთ
კომპონენტს, ეს არ იმოქმედებს სხვა კომპონენტებზე.
Dependency Injection Design Pattern C#-ში არის პროცესი, რომლის დროსაც ჩვენ ვაკეთებთ კლასის დამოკიდებულ
ობიექტს კლასში, რომელიც დამოკიდებულია ამ ობიექტზე. Dependency Injection Design Pattern არის ყველაზე ხშირად
გამოყენებული design pattern დღესდღეობით ობიექტებს შორის დამოკიდებულების მოსაშორებლად.dependency injection
(DI) არის design pattern, რომელიც გამოიყენება IoC-ის (Inversion of Control)განსახორციელებლად. ის საშუალებას აძლევს
შექმნას დამოკიდებულების ობიექტები კლასის გარეთ და აწვდის ამ ობიექტებს კლასს, რომელიც მასზეა დამოკიდებული
სამი განსხვავებული გზით (ანუ კონსტრუქტორის, მეთოდისა და თვისების გამოყენებით). დამოკიდებულების ინექციის
design pattern მოიცავს 3 ტიპის კლასს:
კლიენტის კლასი: კლიენტის კლასი (დამოკიდებული კლასი) არის კლასი, რომელიც დამოკიდებულია სერვისის კლასზე.
ეს ნიშნავს, რომ კლიენტის კლასს სურს გამოიყენოს სერვისების კლასის სერვისები (მეთოდები).
სერვისის კლასი: სერვისის კლასი (დამოკიდებულება) არის კლასი, რომელიც უზრუნველყოფს რეალურ სერვისებს
კლიენტის კლასს.
ინჟექტორის კლასი: ინჟექტორის კლასი არის კლასი, რომელიც აწვდის სერვისის კლასის ობიექტს კლიენტის კლასში.

4.

singleton
Singleton design pattern C#-ში არის ერთ-ერთი ყველაზე პოპულარული design pattern. ამ
შაბლონში, კლასს აქვს მხოლოდ ერთი მაგალითი პროგრამაში, რომელიც უზრუნველყოფს მასზე
წვდომის გლობალურ წერტილს. სხვა სიტყვებით რომ ვთქვათ, singleton არის კლასი, რომელიც
საშუალებას აძლევს შექმნას მხოლოდ ერთი ეგზემპლარი და ჩვეულებრივ იძლევა მარტივ
წვდომას ამ მაგალითზე.
C#-ში singleton ნიმუშის განხორციელების სხვადასხვა გზა არსებობს. Singleton pattern ის
მახასიათებლებია.
კერძო და უპარამეტრო ერთი კონსტრუქტორი
დალუქული კლასი.
სტატიკური ცვლადი შექმნილ მაგალითზე მითითების შესანახად
შექმნილ ინსტანციაზე მითითების მიღების საჯარო და სტატიკური გზა.

5.

Repository pattern
Repository Pattern არის design pattern, რომელიც ჩვეულებრივ გამოიყენება პროგრამული
უზრუნველყოფის შემუშავებაში, მათ შორის C# და .NET აპლიკაციებში, მონაცემთა წვდომის ფენის
აბსტრაქციისა და ინკაფსულაციისთვის. ის უზრუნველყოფს მონაცემთა შენახვის, როგორიცაა
მონაცემთა ბაზებთან ურთიერთქმედების სტრუქტურირებულ გზას, აპლიკაციის ბიზნეს ლოგიკის
პირდაპირ დაკავშირების გარეშე მონაცემთა წვდომის კონკრეტულ ტექნოლოგიასთან ან
განხორციელების დეტალებთან. ეს გამიჯვნა აუმჯობესებს თქვენი კოდების ბაზის შენარჩუნებას,
ტესტირებას და მოქნილობას.
repository design pattern შუამავლობს დომენსა და მონაცემთა რუკების ფენებს შორის კოლექციის
მსგავსი ინტერფეისის გამოყენებით დომენის ობიექტებზე წვდომისთვის.
სხვა სიტყვებით რომ ვთქვათ, შეგვიძლია ვთქვათ, რომ repository design pattern მოქმედებს როგორც
შუამავალი ან შუა ფენა დანარჩენ აპლიკაციასა და მონაცემთა წვდომის ლოგიკას შორის. ეს ნიშნავს,
რომ repository pattern იზოლირებს მონაცემთა წვდომის ყველა კოდს დანარჩენი აპლიკაციიდან. ამის
უპირატესობა ის არის, რომ თუ რაიმე ცვლილების შეტანა გჭირდებათ, ეს უნდა გააკეთოთ ერთ
ადგილას. კიდევ ერთი უპირატესობა ის არის, რომ თქვენი კონტროლერების ტესტირება ადვილი
ხდება, რადგან ტესტირების ჩარჩო არ უნდა ეწინააღმდეგებოდეს მონაცემთა ბაზაში წვდომის კოდს.
წინა დიაგრამა შეიცვლება repository design pattern-ით შემდეგ დიაგრამაზე.

6.

გმადლობთ
ყურადღებისთვის
English     Русский Правила