О шаблоне "Состояние". Часть 1

О шаблоне "Состояние"
Информация
Название: 
О шаблоне "Состояние". Часть 1
Автор: 
samana
Формат видео: 
mp4
Продолжительность: 
27 минут
Размер: 
51,8 Мб в архиве

Если вы что-то слышали о каких-то шаблонах проектирования, но не имели возможности узнать о них больше, то этот видео урок будет хорошим поводом для начала изучения и понимания шаблонов проектирования. Здесь пойдёт речь о шаблоне "Состояние/State".

Из первой части вы узнаете для чего предназначен этот шаблон и как он работает. Как переводить объект из одного состояния в другое и как контролировать переход состояний между собой.

Исходник будет во второй части

P.S. На самом деле это не единственный шаблон проектирования, среди всех остальных есть ещё один очень важный шаблон, который очень сильно может вам помочь при разработке крупных приложений. Этот шаблон называется MVC (Model-View-Controller). Уроки по этому шаблону проектирования есть в нашем курсе ActionScript 3.0: От нуля до Объектно-Ориентированного Программирования

Впервые!

Если у вас было хоть раз желание сделать что-то новое и необычное, то этот видеокурс для вас! Знания ActionScript 3.0 вдохнут в ваши проекты новую жизнь, позволив тем самым поднять их на новый уровень

С помощью этого видеокурса вы пройдёте путь от новичка до Объектно-Ориентированного Программирования, сможете работать со многими популярными библиотеками и научитесь создавать сайты во flash! + Видеокурс по PaperVision3D в подарок!

Видеокурс содержит 119 видеоуроков в 12 главах. На сегодняшний день это единственный видеокурс, таких масштабов

Узнайте о других возможностях ActionScript 3.0

Комментарии

Аватар пользователя Чешир

Спасибо большое за урок.
Правда, после добавления 4-5 состояния, переписывать код каждого для возможностей перехода из одного в другое, становиться тяжеловато.
Можно ли использовать наследование, создать класс "Состояние" и переопределять только те методы которые мы хотим запретить или изменить?

Cheshir

Аватар пользователя samana

Да, конечно можно наследование. Базовый класс состояния должен выглядеть примерно так:

package  
{
	public class State implements IState 
	{
		internal var man:Man;
 
		public function State(man:Man) { this.man = man };
 
		/* INTERFACE IState */
		public function talk():void {}
		public function toNormalState():void {}
		public function toEatsState():void {}
		public function toSleepState():void {}
	}
}

А любой другой класс наследующий State тогда должен измениться на:

package  
{
	public class NormalState extends State
	{
		public function NormalState(man:Man) {super(man)}
 
		//переопределяем нужные методы
		override public function talk():void { trace("У меня всё нормально!!!") };
		override public function toSleepState():void {	man.state = man.sleepState };
	}
}

Не забудьте после создания новых состояний, прописывать метод перехода в это состояние в интерфейсе IState и добавить этот метод в базовый класс State