public void Do() { try { // Create a console AllocConsole(); PatternCommandType type = m_gof.CurrentType; // Log the running pattern Console.WriteLine(string.Format(c_sLogFormat, m_sPatternName, type.ToString())); // Find Class by reflection string sAppName = string.Format(c_sAppFormat, m_sPatternName, type.ToString()); Type mainApp = Type.GetType(sAppName); if (mainApp == null) { throw new GoFException(c_sMainAppError + sAppName); } // Find Main Entry point by reflection MethodInfo main = mainApp.GetMethod(c_sEntryPoint, BindingFlags.Static | BindingFlags.Public); if (main == null) { throw new GoFException(c_sMainError + sAppName); } // Call the main entry point for the pattern main.Invoke(null, null); } catch (Exception ex) { Console.WriteLine(ex.Message); if (ex.InnerException != null) { Console.WriteLine(); Console.WriteLine(ex.InnerException.Message); } Console.WriteLine(); Console.WriteLine(ex.StackTrace); Console.ReadKey(); } finally { // Release the console FreeConsole(); } }
public GangOfFour() { CurrentType = PatternCommandType.Structural; Items = new List <Pattern>(new Pattern[] { new Pattern { Name = "AbstractFactory", Category = PatternCategory.Creational, FrequencyLevel = 5, }, new Pattern { Name = "Builder", Category = PatternCategory.Creational, FrequencyLevel = 2, }, new Pattern { Name = "FactoryMethod", Category = PatternCategory.Creational, FrequencyLevel = 5, }, new Pattern { Name = "Prototype", Category = PatternCategory.Creational, FrequencyLevel = 3, }, new Pattern { Name = "Singleton", Category = PatternCategory.Creational, FrequencyLevel = 4, }, new Pattern { Name = "Adapter", Category = PatternCategory.Structural, FrequencyLevel = 4, }, new Pattern { Name = "Bridge", Category = PatternCategory.Structural, FrequencyLevel = 3, }, new Pattern { Name = "Composite", Category = PatternCategory.Structural, FrequencyLevel = 4, }, new Pattern { Name = "Decorator", Category = PatternCategory.Structural, FrequencyLevel = 3, }, new Pattern { Name = "Facade", Category = PatternCategory.Structural, FrequencyLevel = 5, }, new Pattern { Name = "Flyweight", Category = PatternCategory.Structural, FrequencyLevel = 1, }, new Pattern { Name = "Proxy", Category = PatternCategory.Structural, FrequencyLevel = 4, }, new Pattern { Name = "ChainOfResponsibility", Category = PatternCategory.Behavioral, FrequencyLevel = 2, }, new Pattern { Name = "Command", Category = PatternCategory.Behavioral, FrequencyLevel = 4, }, new Pattern { Name = "Interpreter", Category = PatternCategory.Behavioral, FrequencyLevel = 1, }, new Pattern { Name = "Iterator", Category = PatternCategory.Behavioral, FrequencyLevel = 5, }, new Pattern { Name = "Mediator", Category = PatternCategory.Behavioral, FrequencyLevel = 2, }, new Pattern { Name = "Memento", Category = PatternCategory.Behavioral, FrequencyLevel = 1, }, new Pattern { Name = "Observer", Category = PatternCategory.Behavioral, FrequencyLevel = 5, }, new Pattern { Name = "State", Category = PatternCategory.Behavioral, FrequencyLevel = 3, }, new Pattern { Name = "Strategy", Category = PatternCategory.Behavioral, FrequencyLevel = 4, }, new Pattern { Name = "TemplateMethod", Category = PatternCategory.Behavioral, FrequencyLevel = 3, }, new Pattern { Name = "Visitor", Category = PatternCategory.Behavioral, FrequencyLevel = 1, }, }); }