Материалы книги получены с http://www.itlibitum.ru/
Упрощенное создание объектов
Объекты теперь создаются в три этапа:
1. Создать ConstPtr, указывающий на NULL.
2. Запросить у него Lock.
3. Потребовать у Lock создать объект функцией Make().
Конечно, это произведет впечатление на ваших коллег и лишний раз докажет вашу техническую квалификацию, но… они косо посмотрят на вас и вернутся к оператору new. Ведь он справляется с задачей за один этап, а нас окружают занятые, очень занятые люди. Существует несколько способов свести процесс создания к одному этапу, и самый простой из них - включить в ConstPtr другой конструктор.
ConstPtr<Type>::ConstPtr(Transaction* t) : old_image(NULL), lock(NULL)
{
LockPtr<Type>& lp = Lock(t);
lp.Make();
}
Последующий вызов Lock() возвращает уже созданный LockPtr.
Назад Содержание Далее
|