state

package
v0.0.0-...-6db54d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2021 License: MIT Imports: 0 Imported by: 0

README

Состояние (State)

Паттерн State относится к поведенческим паттернам уровня объекта.

Паттерн State позволяет объекту изменять свое поведение в зависимости от внутреннего состояния и является объектно-ориентированной реализацией конечного автомата. Поведение объекта изменяется настолько, что создается впечатление, будто изменился класс объекта.

Паттерн должен применяться:

  • когда поведение объекта зависит от его состояния
  • поведение объекта должно изменяться во время выполнения программы
  • состояний достаточно много и использовать для этого условные операторы, разбросанные по коду, достаточно затруднительно

Требуется для реализации:

  1. Класс Context, представляет собой объектно-ориентированное представление конечного автомата;
  2. Абстрактный класс State, определяющий интерфейс различных состояний;
  3. Класс ConcreteStateA реализует одно из поведений, ассоциированное с определенным состоянием;
  4. Класс ConcreteStateB реализует одно из поведений, ассоциированное с определенным состоянием.

[!] В описании паттерна применяются общие понятия, такие как Класс, Объект, Абстрактный класс. Применимо к языку Go, это Пользовательский Тип, Значение этого Типа и Интерфейс. Также в языке Go вместо наследования используется композиция.

-- THE END --

Documentation

Overview

Package state is an example of the State Pattern.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MobileAlert

type MobileAlert struct {
	// contains filtered or unexported fields
}

MobileAlert implements an alert depending on its state.

func NewMobileAlert

func NewMobileAlert() *MobileAlert

NewMobileAlert is the MobileAlert constructor.

func (*MobileAlert) Alert

func (a *MobileAlert) Alert() string

Alert returns a alert string

func (*MobileAlert) SetState

func (a *MobileAlert) SetState(state MobileAlertStater)

SetState changes state

type MobileAlertSong

type MobileAlertSong struct {
}

MobileAlertSong implements beep alert

func (*MobileAlertSong) Alert

func (a *MobileAlertSong) Alert() string

Alert returns a alert string

type MobileAlertStater

type MobileAlertStater interface {
	Alert() string
}

MobileAlertStater provides a common interface for various states.

type MobileAlertVibration

type MobileAlertVibration struct {
}

MobileAlertVibration implements vibration alert

func (*MobileAlertVibration) Alert

func (a *MobileAlertVibration) Alert() string

Alert returns a alert string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL