1 Examples of Design patterns in Oggdsf
\r
2 =====================================
\r
4 Builder Pattern - Used in WinCMMLParser. This builds up the tag objects(libCMMLTags) via
\r
6 Prototype Pattern - Used in libCMMLTags to provide "virtual constructors" to allow a
\r
7 pointer to the base type (prototype) to clone the actual concrete
\r
9 Adapter Pattern - Used in the .NET libraries to expose unmanaged code components.
\r
10 Ambassador Pattern - Used in the callback proxy classes (eg. CMMLCallbackProxy) to proxy a callback
\r
11 from unmanaged code through to managed code.
\r
12 Abstract Factory Pattern- Used in the OggStreamFactory and DataSourceFactory, to create
\r
13 various concrete ogg streams or data sources (file, http etc)
\r
14 Facade Pattern - Used to hide complexity of directshow from .NET managed clients (DSPlay)
\r
15 Template Method Pattern - used in all the AbstractAudioDecoder etc classes allowing hooks to derived
\r
16 classes to provide their own codec specific algorithms.
\r
17 Command Pattern - Used in the StreamMappers. The client issues requests to the StreamMapper
\r
18 which executes the request on the appropriate object (ie acceptOggPage)
\r