В реальной жизни не бывает ситуаций с классическими примерами, в 99% случаев всегда реализация, зависящая от ситуации. Выделить можно разве что синглтон. Надо просто на практике уметь так хитро и красиво искрутить код, чтобы потом не выстрелить себе в ногу.
Способ заучивания таких предохранителей зависит уже от тебя, можно, например, выдумывать какие-нибудь задачки и попытаться их решить. И обычная зубрёжка или обращение к книге по паттернам тебе не поможет, нужно понимание "зачем" и "как".