Поздравления за урока. Много ми хареса как си го обяснил
Но мисля, че към урока може да се добави една малка подробност. А именно да се забрани клонирането на обекти. Като се замислих малко се сетих за няколко начина, но може би най-простият е просто да се направи така:
private function __clone() { }