I am quite touched by the design model of terrylee. I will take the following notes for future reference.
Code
// -----------------------------------------------
// Abstract Factory is used to process the creation of composite objects.
// Similar to the factory method, class creation is pushed to the client, and the Creation logic is pushed to the client.
// -----------------------------------------------
# Region Product
# Region Simple Product
Public Abstract Class Monitor
{
}
Public Abstract Class Box
{
}
# Endregion
# Region Composite products
Public Abstract Class PC
{
Public Abstract Monitor createmonitor ();
Public Abstract Box createbox ();
}
Public Class Typeapc: PC
{
Public Override Monitor createmonitor ()
{
Throw New Notimplementedexception ();
}
Public Override Box createbox ()
{
Throw New Notimplementedexception ();
}
}
Public Class Typebpc: PC
{
Public Override Monitor createmonitor ()
{
Throw New Notimplementedexception ();
}
Public Override Box createbox ()
{
Throw New Notimplementedexception ();
}
}
# Endregion
# Endregion
# Region Factory
Public Class Pcfactory
{
Public Monitor pen;
Public Box box;
Public Void Creatpc (PC some)
{
Pen = Some. createmonitor ();
Box = Some. createbox ();
}
}
# Endregion
# Region Client
Public Class App
{
Public Static Void Main ( String [] ARGs)
{
String Strfactoryname = " Typeapc " ;
PC;
PC = (PC) Assembly. Load ( " Factorymethod " ). Createinstance ( " Factorymethod. " + Strfactoryname );
Pcfactory Factory = New Pcfactory ();
Factory. creatpc (PC );
}
}
# Endregion