1
0
mirror of synced 2024-12-15 07:36:03 +03:00
doctrine2/manual/docs/Technology - Design patterns used.php

47 lines
2.6 KiB
PHP
Raw Normal View History

2006-07-24 01:08:06 +04:00
GoF [Gang Of Four] design patterns used:
<br \>
<li \><a href="http://www.dofactory.com/Patterns/PatternSingleton.aspx">Singleton</a><br \>
<dd>For forcing only one instance of Doctrine_Manager
<li \><a href="http://www.dofactory.com/Patterns/PatternComposite.aspx">Composite</a><br \>
<dd>For leveled configuration
<li \><a href="http://www.dofactory.com/Patterns/PatternFactory.aspx">Factory</a><br \>
2006-08-22 02:55:11 +04:00
<dd>For connection driver loading and many other things
2006-07-24 01:08:06 +04:00
<li \><a href="http://www.dofactory.com/Patterns/PatternObserver.aspx">Observer</a><br \>
<dd>For event listening
<li \><a href="http://www.dofactory.com/Patterns/PatternFlyweight.aspx">Flyweight</a><br \>
<dd>For efficient usage of validators
<li \><a href="http://www.dofactory.com/Patterns/PatternFlyweight.aspx">Iterator</a><br \>
2006-08-22 02:55:11 +04:00
<dd>For iterating through components [Tables, Connections, Records etc.]
2006-07-24 01:08:06 +04:00
<li \><a href="http://www.dofactory.com/Patterns/PatternState.aspx">State</a><br \>
2006-08-22 02:55:11 +04:00
<dd>For state-wise connections
2006-07-24 01:08:06 +04:00
<li \><a href="http://www.dofactory.com/Patterns/PatternStrategy.aspx">Strategy</a><br \>
<dd>For algorithm strategies
<br \><br \>
Enterprise application design patterns used:
<br \>
<li \><a href="http://www.martinfowler.com/eaaCatalog/activeRecord.html">Active Record</a><br \>
<dd>Doctrine is an implementation of this pattern
<li \><a href="http://www.martinfowler.com/eaaCatalog/unitOfWork.html">UnitOfWork</a><br \>
<dd>For maintaining a list of objects affected in a transaction
<li \><a href="http://www.martinfowler.com/eaaCatalog/identityField.html">Identity Field</a><br \>
<dd>For maintaining the identity between record and database row
<li \><a href="http://www.martinfowler.com/eaaCatalog/metadataMapping.html">Metadata Mapping</a><br \>
<dd>For Doctrine DataDict
<li \><a href="http://www.martinfowler.com/eaaCatalog/dependentMapping.html">Dependent Mapping</a><br \>
<dd>For mapping in general, since all records extend Doctrine_Record which performs all mappings
<li \><a href="http://www.martinfowler.com/eaaCatalog/foreignKeyMapping.html">Foreign Key Mapping</a><br \>
<dd>For one-to-one, one-to-many and many-to-one relationships
<li \><a href="http://www.martinfowler.com/eaaCatalog/associationTableMapping.html">Association Table Mapping</a><br \>
<dd>For association table mapping (most commonly many-to-many relationships)
<li \><a href="http://www.martinfowler.com/eaaCatalog/lazyLoad.html">Lazy Load</a><br \>
<dd>For lazy loading of objects and object properties
<li \><a href="http://www.martinfowler.com/eaaCatalog/queryObject.html">Query Object</a><br \>
<dd>DQL API is actually an extension to the basic idea of Query Object pattern