(NET) NET (2016)

Factory Method in VB.NET

Creates an instance of several derived classes

Return


Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. The Abstract class may provide a default object, but each subclass can instantiate an extended version of the object.







Please download project with this source code from https://github.com/ViacheslavUKR/StandardDisignOopPattern



   1:      ' Factory Method Design Pattern.
   2:      ' See description in //www.vb-net.com/ProgramTheory/FactoryMethod.htm
   3:      Class MainApp
   4:          ' Entry point into console application.
   5:          Public Shared Sub Main()
   6:              ' An array of creators
   7:              Dim creators As Creator() = New Creator(1) {}
   8:              creators(0) = New ConcreteCreatorA()
   9:              creators(1) = New ConcreteCreatorB()
  10:              ' Iterate over creators and create products
  11:              For Each creator As Creator In creators
  12:                  Dim product As Product1 = creator.FactoryMethod()
  13:                  Console.WriteLine("Created {0}", product.[GetType]().Name)
  14:              Next
  15:              ' Wait for user
  16:              Console.ReadKey()
  17:          End Sub
  18:      End Class
  19:   
  20:      ' The 'Product' abstract class
  21:      MustInherit Class Product1
  22:      End Class
  23:   
  24:      ' A 'ConcreteProduct' class
  25:      Class ConcreteProductA
  26:          Inherits Product1
  27:      End Class
  28:   
  29:      ' A 'ConcreteProduct' class
  30:      Class ConcreteProductB
  31:          Inherits Product1
  32:      End Class
  33:   
  34:      ' The 'Creator' abstract class
  35:      MustInherit Class Creator
  36:          Public MustOverride Function FactoryMethod() As Product1
  37:      End Class
  38:   
  39:      ' A 'ConcreteCreator' class
  40:      Class ConcreteCreatorA
  41:          Inherits Creator
  42:          Public Overrides Function FactoryMethod() As Product1
  43:              Return New ConcreteProductA()
  44:          End Function
  45:      End Class
  46:   
  47:      ' A 'ConcreteCreator' class
  48:      Class ConcreteCreatorB
  49:          Inherits Creator
  50:          Public Overrides Function FactoryMethod() As Product1
  51:              Return New ConcreteProductB()
  52:          End Function
  53:      End Class




See also:
Creational Patterns Structural Patterns Behavioral Patterns

Comments ( )
<00>  <01>  <02>  <03>  <04>  <05>  <06>  <07>  <08>  <09>  <10>  <11>  <12>  <13>  <14>  <15>  <16>  <17>  <18>  <19>  <20>  <21>  <22>  <23
Link to this page: //www.vb-net.com/ProgramTheory/FactoryMethod.htm
<SITEMAP>  <MVC>  <ASP>  <NET>  <DATA>  <KIOSK>  <FLEX>  <SQL>  <NOTES>  <LINUX>  <MONO>  <FREEWARE>  <DOCS>  <ENG>  <CHAT ME>  <ABOUT ME>  < THANKS ME>