Sobes.tech
Junior — Middle

Μπορείτε να απαριθμήσετε τα βασικά μοτίβα συμπεριφοράς που χρησιμοποιούνται στην ανάπτυξη λογισμικών συστημάτων;

sobes.tech AI

Απάντηση από AI

Οι βασικές συμπεριφορικές προδιαγραφές σχεδίασης, συχνά χρησιμοποιούνται στην ανάπτυξη:

  • Στρατηγική (Strategy) — επιτρέπει την επιλογή αλγορίθμου κατά την εκτέλεση.
  • Παρατηρητής (Observer) — διασφαλίζει την ειδοποίηση των εξαρτώμενων αντικειμένων σχετικά με αλλαγές.
  • Εντολή (Command) — ενσωματώνει ένα αίτημα ως αντικείμενο, επιτρέποντας την παραμετροποίηση πελατών.
  • Διαδρομέας (Iterator) — παρέχει έναν τρόπο πρόσβασης διαδοχικά στα στοιχεία μιας συλλογής.
  • Κατάσταση (State) — επιτρέπει σε ένα αντικείμενο να αλλάξει συμπεριφορά όταν αλλάζει η εσωτερική κατάσταση.
  • Μεσολαβητής (Mediator) — εστιάζει την αλληλεπίδραση μεταξύ αντικειμένων.
  • Μέθοδος Πρότυπο (Template Method) — ορίζει το σκελετό ενός αλγορίθμου, επιτρέποντας στις υποκλάσεις να επαναπροσδιορίσουν ορισμένα βήματα.

Παράδειγμα του μοτίβου "Στρατηγική" σε Python:

class Strategy:
    def execute(self, data):
        pass

class ConcreteStrategyA(Strategy):
    def execute(self, data):
        return sorted(data)

class ConcreteStrategyB(Strategy):
    def execute(self, data):
        return sorted(data, reverse=True)

class Context:
    def __init__(self, strategy):
        self.strategy = strategy

    def do_something(self, data):
        return self.strategy.execute(data)

context = Context(ConcreteStrategyA())
print(context.do_something([3,1,2]))  # [1, 2, 3]
context.strategy = ConcreteStrategyB()
print(context.do_something([3,1,2]))  # [3, 2, 1]