close
ImageProcessor portion:
1: namespace TemplateMethodConsole
2: {3: abstract class ImageProcessor
4: {5: public void ProcRoutine()
6: { 7: Input(); 8: ImageProc(); 9: Output(); 10: }11: public virtual void Input()
12: {13: Console.Write("Load file: ");
14: }15: public virtual void ImageProc()
16: {17: Console.Write("Image processing: ");
18: }19: public virtual void Output()
20: {21: Console.Write("Output file: ");
22: } 23: } 24: }Filter2D portion:
1: namespace TemplateMethodConsole
2: {3: class Filter2D : ImageProcessor
4: {5: public override void Input()
6: {7: base.Input();
8: Console.WriteLine("Read a bmp-format image");
9: }10: public override void ImageProc()
11: {12: base.ImageProc();
13: Console.WriteLine("Perform Filter2D.");
14: }15: public override void Output()
16: {17: base.Output();
18: Console.WriteLine("Write a bmp-format image");
19: } 20: } 21: }PrymidDown portion:
1: namespace TemplateMethodConsole
2: {3: class PrymidDown : ImageProcessor
4: {5: public override void Input()
6: {7: base.Input();
8: Console.WriteLine("Read a jpeg-format image");
9: }10: public override void ImageProc()
11: {12: base.ImageProc();
13: Console.WriteLine("Perform downsampling.");
14: }15: public override void Output()
16: {17: base.Output();
18: Console.WriteLine("Write a jpeg-format image");
19: } 20: } 21: }GaussianFilter portion:
1: namespace TemplateMethodConsole
2: {3: class GaussianFilter:ImageProcessor
4: {5: public override void Input()
6: {7: base.Input();
8: Console.WriteLine("Read a xml-format image");
9: }10: public override void ImageProc()
11: {12: base.ImageProc();
13: Console.WriteLine("Perform Gaussian filter.");
14: }15: public override void Output()
16: {17: base.Output();
18: Console.WriteLine("Write a xml-format image");
19: } 20: } 21: }Console portion:
1: class Program
2: {3: static void Main(string[] args)
4: {5: ImageProcessor ip1 = new PrymidDown();
6: ImageProcessor ip2 = new Filter2D();
7: ImageProcessor ip3 = new GaussianFilter();
8: 9: ip1.ProcRoutine();10: Console.WriteLine("-----------------");
11: ip2.ProcRoutine();12: Console.WriteLine("-----------------");
13: ip3.ProcRoutine();14: Console.WriteLine("-----------------");
15: Console.ReadKey(); 16: } 17: }全站熱搜



留言列表
