private static IGridAlgorithm CreateAlgorithm(int gridSize, int outputColumnLength, TextWriter outputWriter) { Stopwatch stopwatch = Stopwatch.StartNew(); Logger logger = new Logger(Console.Out, () => stopwatch.Elapsed); BlockWriter writer = new BlockWriter(outputWriter, gridSize, outputColumnLength); switch (gridSize) { case 2: return(new Word2GridAlgorithm(logger, writer)); case 3: return(new Word3GridAlgorithm(logger, writer)); case 4: return(new Word4GridAlgorithm(logger, writer)); default: throw new InvalidOperationException("Invalid size."); } }
public Word2GridAlgorithm(Logger logger, BlockWriter writer) : base(logger, writer) { }
protected GridAlgorithm(Logger logger, BlockWriter blockWriter) { this.logger = logger; this.blockWriter = blockWriter; }