There is a list of design patterns which are used in Magento on Stack Overflow
From the article:
The obvious ones are:
Factory:
$product = Mage::getModel('catalog/product');
Singleton:
$category = Mage::getSingleton('catalog/session');
Registry:
$currentCategory = Mage::registry('current_category');
View Helper:
Mage::helper('core');
Prototype:
Mage:getModel('catalog/product')->getTypeInstance();
Object Pool:
$id = Mage::objects()->save($object);
$object = Mage::objects($id);
Iterator:
Mage::getModel('catalog/product')->getCollection();
Event/Listeners:
Mage::dispatchEvent('model_load_before', $params);
EDIT
Active record
$product->save()
$product->getName()
Null object
$collection->getFirstItem()
Lazy loading - collections are loaded when iterated
There are also 5 articles on Ryan Street blog about MVC, Front Controller, Factory, Singleton and Registry in Magento
Edit
I might add that the Magento 'singleton' is more a pseudo-singleton. It's a combination of 'Factory' because Mage::getSingleton() is a factory and 'Registry' because inside the getSingleton()
method this is called
self::register($registryKey, self::getModel($modelClass, $arguments))