Sobes.tech
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): წარმოადგენს ოპერაციას, რომელიც უნდა შესრულდეს ობიექტების სტრუქტურაზე. ვიზიტორი საშუალებას აძლევს განსაზღვროს ახალი ოპერაცია ელემენტების კლასების შეცვლის გარეშე, რომელზეც მუშაობს.