Middle
რა დიზაინის ნიმუშებს იცნობთ?
sobes.tech AI
პასუხი AI-სგან
წარმომადგენლები:
- ფაბრიკის მეთოდი (Factory Method): განსაზღვრავს ობიექტის შექმნის ინტერფეისს, მაგრამ საშუალებას აძლევს ქვესახეებს გადაწყვიტონ, რომელი კლასი უნდა ინსტანცირდეს.
- აბსტრაქტული ფაბრიკა (Abstract Factory): უზრუნველყოფს ინტერფეისს ურთიერთდაკავშირებული ან ურთიერთდამოკიდებული ობიექტების ოჯახების შექმნისთვის, გარეშე მათი კონკრეტული კლასების მითითების.
- კონსტრუქტორი (Builder): გამოყოფს რთული ობიექტის კონსტრუქციას მისი წარმოდგენისგან, საშუალებას აძლევს ერთსა და იმავე კონსტრუქციულ პროცესს სხვადასხვა წარმოდგენების შექმნას.
- პროტოტიპი (Prototype): ქმნის ახალი ობიექტებს არსებული მაგალითის კოპირებით.
- სინგლტონი (Singleton): გარანტიას იძლევა, რომ კლასი მხოლოდ ერთ მაგალითს ფლობს, და გლობალურ წვდომას უზრუნველყოფს ამ მაგალითზე.
სტრუქტურული:
- ადაპტერი (Adapter): გარდაქმნის ერთი კლასი ინტერფეისს სხვა ინტერფეისში, რომელიც მომხმარებლებს მოსწონთ.
- ბრიდჯი (Bridge): გამოყოფს აბსტრაქციას და მისი განხორციელებას, რათა ისინი დამოუკიდებლად იცვლებოდნენ.
- კომპოზიტი (Composite): აწყობს ობიექტებს ხის სტრუქტურაში, რათა წარმოადგინოს ნაწილ-ცალკე ურთიერთობები. კომპოზიტი საშუალებას აძლევს მომხმარებლებს მუშაობა ინდივიდუალურ ობიექტებთან და მათ კოლექციებთან ერთნაირად.
- დეკორატორი (Decorator): დინამიურად აძლიერებს ობიექტს ახალი პასუხისმგებლობებით. ეს მოქნილი ალტერნატივაა ქვესახეების შექმნისთვის ფუნქციონალობის გაფართოებისთვის.
- ფასადი (Facade): უზრუნველყოფს ერთიან ინტერფეისს სისტემის სხვადასხვა ინტერფეისისთვის. ფასადი განსაზღვრავს მაღალი დონის ინტერფეისს, რომელიც ამარტივებს სისტემის გამოყენებას.
- ფლაივეიტი (Flyweight): ეფექტურად იყენებს დიდი რაოდენობით მსგავსი ობიექტების გაზიარებას.
- პროქსი (Proxy): უზრუნველყოფს ალტერნატიულ ობიექტს, რომელიც აკონტროლებს სხვა ობიექტის წვდომას.
მოძრაობის:
- პასუხისმგებლობის ჯაჭვი (Chain of Responsibility): გადასცემს მოთხოვნებს ერთის შემდეგ მეორეს, სანამ ვინმე მათ არ მიიღებს და არ დაამუშავებს. თითოეული დამუშავებელი ან პასუხს გასცემს მოთხოვნას, ან გადმოსცემს შემდეგს.
- კომანდა (Command): ინკაფსულირებს მოთხოვნას ობიექტად, რაც საშუალებას აძლევს მომხმარებლებს სხვადასხვა მოთხოვნების პარამეტრიზაციას, რიგში დაყენებას, ლოგირებას და ანულირების ოპერაციების მხარდაჭერას.
- იტერატორი (Iterator): უზრუნველყოფს თანმიმდევრულ წვდომას კომპოზიციურ ობიექტზე მისი შიდა წარმოდგენის გამჟღავნების გარეშე.
- მედიატორი (Mediator): განსაზღვრავს ობიექტს, რომელიც ინკაფსულირებს ობიექტების ურთიერთქმედებას. მედიანტარი ხელს უწყობს სუსტი კავშირის შენარჩუნებას, თავიდან აცილებს ობიექტების პირდაპირ მითითებებს ერთმანეთს შორის.
- მემენტო (Memento): ინკაფსულირებას არღვევს, დააფიქსირებს და გარედან ინახავს ობიექტის შიდა მდგომარეობას, რათა შემდგომში მისი აღდგენა შესაძლებელი იყოს.
- დაკვირვებელი (Observer): განსაზღვრავს "ერთი-მრავლობით" დამოკიდებულებას ობიექტებს შორის, ისე, რომ როდესაც ერთი ობიექტის მდგომარეობა იცვლება, ყველა მისი დამოკიდებული ავტომატურად იწვევება და განახლდება.
- სახეობა (State): საშუალებას აძლევს ობიექტს შეცვალოს თავისი ქცევა მისი შიდა მდგომარეობის ცვლილებისას. თითქოს, ობიექტი იცვლის თავის კლასს.
- სტრატეგია (Strategy): განსაზღვრავს ალგორითმების ოჯახს, ინკაფსულირებს თითოეულ ალგორითმს და აძლევს მათ ურთიერთგამომრიცხავ შესაძლებლობას. სტრატეგია საშუალებას აძლევს ალგორითმს იცვალოს დამოუკიდებლად მომხმარებლებისგან, რომლებიც იყენებენ მას.
- თარგმანი მეთოდი (Template Method): განსაზღვრავს ალგორითმის ჩარჩოს ოპერაციაში, დატოვებს გარკვეულ ნაბიჯებს ქვესახეებს. თარგმანი მეთოდი საშუალებას აძლევს ქვესახეებს გადახაზონ ალგორითმის გარკვეული ნაბიჯები, მისი სტრუქტურა არ შეცვალოს.
- მომლოცველი (Visitor): წარმოადგენს ოპერაციას, რომელიც უნდა შესრულდეს ობიექტების სტრუქტურაზე. ვიზიტორი საშუალებას აძლევს განსაზღვროს ახალი ოპერაცია ელემენტების კლასების შეცვლის გარეშე, რომელზეც მუშაობს.