Desing Patterns in Action
Today we will develop a custom output caching provider in asp.net 4.0. In .net framework 4.0 microsoft has emphasized on provider model for pluggable development. The provider model in .net 4.0 has been used and promoted extensively.
Developers can write their custom provider for logging, membership, caching, viewstate without affecting the existing application and plug that up with just configuration changes.
I will try to show this by writing custom file based output caching for asp.net 4.0 application. There may be scenario where memory based caching is expensive, so we can make use of provider model and write our own custom output caching.
1. Create a C# Library Project
2. Add reference to System.Web dll
Abstract Factory Design Pattern
We have already seen about factory method design pattern. abstract factory is about grouping similar family of factory pattern and providing abstract layering for them.
The main motto of abstract factory design pattern is "Provide an interface for creating families of related or dependent objects without specifying their concrete classes." as specified in GoF. Below are the main members of this design pattern:
AbstractFactory - An interface with Get operations for each of the abstract products
Factory1, Factory2 - Implementations of all the AbstractFactory creation operations
AbstractProduct - An interface for a kind of product with its own operations
ProductA1, ProductA2, ProductB1, ProductB2 - Classes that implement the AbstractProduct interface and define product objects to be created by the corresponding factories
Client - A class that accesses only the AbstractFactory and AbstractProduct interfaces