Factory

 Rate It (5)

Factory

The job of the Factory design pattern is to create concrete sub classes. You can see the Factory desing pattern used throughout the .net framework.

A VB example of the Factory Pattern

' A Simple Interface
Public
Interface IVehicle

      Sub Drive(ByVal miles As Integer)

End Interface

' The Vehicle Factory
Public
Class VehicleFactory
      Public Shared Function getVehicle(ByVal Vehicle As String) As IVehicle
 
          Select Case Vehicle
             
Case "Car"
                
Return New Car
            
Case "Lorry"
                
Return New Lorry
            
Case Else
                
Throw New ApplicationException(String.Format("Vehicle '{0}' cannot be created", Vehicle))
         
End Select

     
End Function
End
Class

' A Car Class that Implements the IVehicle Interface
Public
Class Car
     
Implements IVehicle

      Public Sub Drive(ByVal miles As Integer) Implements IVehicle.Drive
          
' Drive the Car
     
End Sub
End
Class

' A Lorry Class that Implements the IVehicle Interface
Public
Class Lorry
     
Implements IVehicle

      Public Sub Drive(ByVal miles As Integer) Implements IVehicle.Drive
          
' Drive the Lorry 
      
End Sub
End
Class

Articles

 

Revision number 3, Saturday, February 23, 2008 12:56:14 PM by
This is not the most up to date version of this article. The most recent version can be found here.

Comments

I already heard about Factory objects. This article having the code is very useful. Thanks Saravanan

A good option while implementing in .Net is to make the individual implementation Car / Lorry as internal. This enforces the user to use the factory method.

Really nice example !

Great Effort! I would recommend a book i.e Head First Design Patterns.

How would the implementation look? public class Main { IVehicle vehicle = VehicleFactory.getVehicle("car"); vehicle.Drive(1000); } the vehicle.Drive() doesn't work, but it seems like it would.

Good example. However, I suggest to include an example of implementation will make this complete. (Look at the bbaxter's comments)

Shortcuts

Table of Contents

Top Wiki Contributors

(last 30 days)

  1. mbanavige (5)
  2. SGWellens (4)
  3. maartenba (2)
  4. rami_nassar (2)
  5. stiansol (2)
  6. MisterFantastic (2)
  7. satish1.v (1)
  8. raklos (1)
  9. mosessaur (1)
  10. Jos Branders (1)

Advertise Here

Microsoft Communities
Page view counter