📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace TemplateMethodExample
{
class Program
{
static void Main(string[] args)
{
PayGateway pg = new IPSGateway();
pg.SubmitOrder(new Order());
}
}
class Order
{
}
class SubmitForm
{
}
abstract class PayGateway
{
protected abstract void WriteLog(SubmitForm sf);
protected abstract SubmitForm GenerateOrderForm(Order order);
public void SubmitOrder(Order order)
{
if (order == null)
{
Console.WriteLine("Invalid Order");
return;
}
SubmitForm sf = GenerateOrderForm(order);
if (sf == null)
{
Console.WriteLine("Generate Submit Form Failed");
return;
}
WriteLog(sf);
}
}
class IPSGateway : PayGateway
{
protected override void WriteLog(SubmitForm sf)
{
Console.WriteLine("Log Wrote");
}
protected override SubmitForm GenerateOrderForm(Order order)
{
Console.WriteLine("Submit Form Generated");
return new SubmitForm();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -