您的位置:首页 > 其它

Patterns in SOME –Template Method

2007-03-01 14:33 399 查看
[align=left]Code in C#:[/align]
[align=left] [/align]
[align=left]namespace TemplateMethod_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] class Algorithm [/align]
[align=left] {[/align]
[align=left] public void DoAlgorithm() [/align]
[align=left] {[/align]
[align=left] Console.WriteLine("In DoAlgorithm");[/align]
[align=left] [/align]
[align=left] // do some part of the algorithm here[/align]
[align=left] [/align]
[align=left] // step1 goes here[/align]
[align=left] Console.WriteLine("In Algorithm - DoAlgoStep1"); [/align]
[align=left] // . . . [/align]
[align=left] [/align]
[align=left] // step 2 goes here[/align]
[align=left] Console.WriteLine("In Algorithm - DoAlgoStep2"); [/align]
[align=left] // . . . [/align]
[align=left] [/align]
[align=left] // Now call configurable/replacable part[/align]
[align=left] DoAlgoStep3();[/align]
[align=left] [/align]
[align=left] // step 4 goes here[/align]
[align=left] Console.WriteLine("In Algorithm - DoAlgoStep4"); [/align]
[align=left] // . . . [/align]
[align=left] [/align]
[align=left] // Now call next configurable part[/align]
[align=left] DoAlgoStep5();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] virtual public void DoAlgoStep3()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("In Algorithm - DoAlgoStep3"); [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] virtual public void DoAlgoStep5()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("In Algorithm - DoAlgoStep5"); [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class CustomAlgorithm : Algorithm[/align]
[align=left] {[/align]
[align=left] public override void DoAlgoStep3()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("In CustomAlgorithm - DoAlgoStep3");[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public override void DoAlgoStep5()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("In CustomAlgorithm - DoAlgoStep5");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] {[/align]
[align=left] CustomAlgorithm c = new CustomAlgorithm();[/align]
[align=left] [/align]
[align=left] c.DoAlgorithm();[/align]
[align=left] [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]Code in SOME:[/align]

CAlgorithm
DoAlgorithm()
v_DoAlgoStep3()
v_DoAlgoStep5()

CCustomAlgorithm : CAlgorithm
o_DoAlgoStep3()
o_DoAlgoStep5()

CClient
main

CClient.main
{
CCustomAlgorithm c.();
c.DoAlgorithm<CAlgorithm>()
{
<%
Console.WriteLine("In DoAlgorithm");

// do some part of the algorithm here

// step1 goes here
Console.WriteLine("In Algorithm - DoAlgoStep1");
// . . .

// step 2 goes here
Console.WriteLine("In Algorithm - DoAlgoStep2");
// . . .

// Now call configurable/replacable part
DoAlgoStep3();

// step 4 goes here
Console.WriteLine("In Algorithm - DoAlgoStep4");
// . . .

// Now call next configurable part
DoAlgoStep5();
%>
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: