Teknologian jakaminen

Tilan malli

2024-07-11

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

Tilan malli

määritelmä

Kutsutaan myös State Machine Patterniksi
Määrittelemällä eri tilaluokat tiettyihin tiloihin liittyvien käyttäytymisten kapseloimiseksi ja siirtämällä tilaarviointilogiikka eri tiloja edustaviin luokkiin, monimutkainen arviointilogiikka yksinkertaistuu.

  • Tilamalli erottaa tilan ja käyttäytymisen, jolloin objekti voi muuttaa käyttäytymistään, kun sen sisäinen tila muuttuu.
  • Jokainen tila vastaa alaluokkaa, jolloin tilasiirtymälogiikka jakautuu tilaalaluokkiin, mikä vähentää keskinäistä riippuvuutta.
  • Asiakas ei yleensä ole vuorovaikutuksessa tilaobjektin kanssa suoraan, vaan vuorovaikutuksessa tilaobjektin kanssa ympäristöluokan (Context) kautta.

Sovellettava kohtaus

  1. Objektin käyttäytyminen riippuu sen tilasta, ja sen on muutettava käyttäytymistään ajon aikana tilan perusteella.
  2. Operaatio sisältää valtavan monihaararakenteen, ja nämä haarat määräytyvät kohteen tilan mukaan.

Vakioesimerkki

Lisää kuvan kuvaus tähän

Tilamallirakennekaaviossa se sisältää yleensä seuraavat roolit:

  • Konteksti (ympäristöluokka): Kutsutaan myös kontekstiluokkaan, se on objekti, jolla on useita tiloja. Säilytä ympäristöluokassa abstraktin tilaluokan tila esiintymää, joka määrittää nykyisen tilan.
  • Tila (abstrakti tilaluokka): käytetään rajapinnan määrittämiseen ympäristöluokan tiettyyn tilaan liittyvän käyttäytymisen kapseloimiseksi. Eri tiloja vastaavat menetelmät on ilmoitettu abstraktissa tilaluokassa ja toteutettu alaluokissa.
  • ConcreteState (konkreettinen tilaluokka): Se on abstraktin tilaluokan alaluokka. Jokainen alaluokka toteuttaa ympäristöluokan tilaan liittyvän käyttäytymisen.

IState

public interface IState {
    void handle();
}