Κοινή χρήση τεχνολογίας

Μοτίβο κατάστασης

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Μοτίβο κατάστασης

ορισμός

Ονομάζεται επίσης μοτίβο κρατικής μηχανής
Ορίζοντας διαφορετικές κατηγορίες καταστάσεων για να ενθυλακώσουν συμπεριφορές που σχετίζονται με συγκεκριμένες καταστάσεις και μεταφέροντας τη λογική κρίσης κατάστασης σε μια σειρά κλάσεων που αντιπροσωπεύουν διαφορετικές καταστάσεις, η σύνθετη λογική κρίσης απλοποιείται.

  • Το πρότυπο κατάστασης διαχωρίζει την κατάσταση και τη συμπεριφορά, επιτρέποντας σε ένα αντικείμενο να αλλάξει τη συμπεριφορά του όταν αλλάζει η εσωτερική του κατάσταση.
  • Κάθε κατάσταση αντιστοιχεί σε μια υποκλάση, κατανέμοντας έτσι τη λογική της μετάβασης κατάστασης στις υποκλάσεις κατάστασης, μειώνοντας την αλληλεξάρτηση.
  • Ο πελάτης συνήθως δεν αλληλεπιδρά απευθείας με το αντικείμενο κατάστασης, αλλά αλληλεπιδρά με το αντικείμενο κατάστασης μέσω της κλάσης περιβάλλοντος (Context).

Εφαρμόσιμη σκηνή

  1. Η συμπεριφορά ενός αντικειμένου εξαρτάται από την κατάστασή του και πρέπει να αλλάξει τη συμπεριφορά του κατά το χρόνο εκτέλεσης με βάση την κατάσταση.
  2. Μια λειτουργία περιέχει μια τεράστια πολυκλαδική δομή και αυτοί οι κλάδοι καθορίζονται από την κατάσταση του αντικειμένου.

Τυπικό παράδειγμα

Εισαγάγετε την περιγραφή της εικόνας εδώ

Στο διάγραμμα δομής προτύπων κατάστασης, συνήθως περιέχει τους ακόλουθους ρόλους:

  • Context (κλάση περιβάλλοντος): Ονομάζεται επίσης κλάση περιβάλλοντος, είναι ένα αντικείμενο με πολλαπλές καταστάσεις. Διατηρήστε μια παρουσία της κλάσης αφηρημένης κατάστασης State στην κλάση περιβάλλοντος, η οποία καθορίζει την τρέχουσα κατάσταση.
  • Κατάσταση (κλάση αφηρημένης κατάστασης): χρησιμοποιείται για τον ορισμό μιας διεπαφής για την ενθυλάκωση της συμπεριφοράς που σχετίζεται με μια συγκεκριμένη κατάσταση της κλάσης περιβάλλοντος. Οι μέθοδοι που αντιστοιχούν σε διάφορες καταστάσεις δηλώνονται στην κλάση αφηρημένης κατάστασης και υλοποιούνται σε υποκλάσεις.
  • ConcreteState (concrete state class): Είναι μια υποκλάση της κλάσης αφηρημένης κατάστασης Κάθε υποκλάση υλοποιεί μια συμπεριφορά που σχετίζεται με μια κατάσταση της κλάσης περιβάλλοντος.

IState

public interface IState {
    void handle();
}