(Giả sử môi trường đơn luồng)
Một chức năng đáp ứng tiêu chí này là:
bool MyClass::is_initialized = false;
void MyClass::lazy_initialize()
{
if (!is_initialized)
{
initialize(); //Should not be called multiple times
is_initialized = true;
}
}
Về bản chất, tôi có thể gọi hàm này nhiều lần và không lo nó khởi tạo MyClass
nhiều lần
Một chức năng không đáp ứng tiêu chí này có thể là:
Foo* MyClass::ptr = NULL;
void initialize()
{
ptr = new Foo();
}
Gọi initialize()
nhiều lần sẽ gây rò rỉ bộ nhớ
Động lực
Thật tuyệt khi có một từ ngắn gọn duy nhất để mô tả hành vi này để các chức năng được mong đợi đáp ứng tiêu chí này có thể được nhận xét hợp lệ (đặc biệt hữu ích khi mô tả các chức năng giao diện dự kiến sẽ bị ghi đè)