Smalltalk в примерах/Основы: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 37:
Допустим что наша программа использует две <i>УпорядочненныеСовокупности</i> (совокупность которая хранит элементы в порядке их добавления). Одна хранит телефонные сообщения которые мы получили но на которые не ответили, и другая хранит действия которые мы должны сделать --- элементы действия. Между тем, нам нужны сообщения для добавления элемента в нашу совокупность, и извлечения первого элемента из совокупности.
 
Мы не должны писать методы <tt>добавить:</tt> и <tt>первый</tt> дважды, один раз для каждого объекта. Вместо этого мы нуждаемся в механизме для написания кода однажды и использования его для обеих УпорядоченныхСовокупностей. Вот откуда появляется концэпцыяконцепция <i>класса</i>. Класс это просто проэктпроект или шаблон для того как объект должэндолжен выглядеть: какие переменные он содержытсодержит и какие сообщения он понимает. Мы определили класс УпорядоченнойСовокупности в котором мы написали код для сообщений <tt>добавить:</tt> и для <tt>первый</tt>. Таким образом вы можэтеможете рассматривать класс УпорядоченнаяСовокупность как хранилище для кода который выполняется когда вы посылаете сообщение. Написав код однажды все УпорядоченныеСовокупности (в нашэмнашем случае две) могут выполнять его.
 
\begin{figure}[!htb]
Строка 47:
\end{figure}
 
Код хранится в <i>методах</i>. Когда объект получает сообщение он выполняет <i>метод</i> с тем жэже именем. Таким образом мы написали методы и они хранятся в классе. Рисунок~\ref{hraniliwe} показывает пример класса Служащий, показано как класс работает в качестве шаблона и в качестве хранилища кода.
 
===Класс как фабрика===