実装に迷う

さていきなり擬似コードです

void* Hoge::AllocateMemrory(dword size)
{
    if (this->allocator == NULL)
    {
      this->allocator = new Allocator(...);
    }
    return this->allocator->Allocate(size);
}


細かい話は抜きにして、こういうコードってありでしょうか?
つまり

  • メンバが初期化されていなかったら、newしてから値を返すという形


気になる点としては

  • 一度newされたあとは、チェック自体が無駄である。


うれしい点は

  • newする場所をほかに作らなくて良いので、呼び出すほうも、呼び出されるほうも幸せ


私見では、簡単なスクリプトや、おもちゃならぜんぜんあり。
このメソッド自体が何回も呼ばれる場合は微妙なのですが。


OSのなかのコードで、かつそこまで頻繁に呼ばれない場合ありだろうか?