using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Salary s = new Salary();
Prize1 p1 = new Prize1();
Prize2 p2 = new Prize2();
Prize3 p3 = new Prize3();
Command c = new ConcreteCommand(s);
Invoker i = new Invoker();
i.SetCommand(c);
Console.WriteLine("基本工资:" + i.ExecuteCommand());
c = new ConcreteCommand(p1);
i.SetCommand(c);
Console.WriteLine("奖金1:" + i.ExecuteCommand());
c = new ConcreteCommand(p2);
i.SetCommand(c);
Console.WriteLine("奖金2:" + i.ExecuteCommand());
c = new ConcreteCommand(p3);
i.SetCommand(c);
Console.WriteLine("奖金3:" + i.ExecuteCommand());
Console.Read();
}
}
abstract class Command
{
protected Receiver _receiver;
public Command(Receiver receiver)
{
this._receiver = receiver;
}
abstract public string Execute();
}
class ConcreteCommand : Command
{
public ConcreteCommand(Receiver receiver)
: base(receiver)
{
}
public override string Execute()
{
return base._receiver.Action();
}
}
class Invoker
{
private Command _command;
public void SetCommand(Command cmd)
{
this._command = cmd;
}
public string ExecuteCommand()
{
return this._command.Execute();
}
}
class Receiver
{
public virtual string Action()
{
return "执行命令";
}
}
class Salary : Receiver
{
public override string Action()
{
return "1000";
}
}
class Prize1 : Receiver
{
public override string Action()
{
return "500";
}
}
class Prize2 : Receiver
{
public override string Action()
{
return "400";
}
}
class Prize3 : Receiver
{
public override string Action()
{
return "300";
}
}
}
c#代码的一些模式
最新推荐文章于 2024-08-12 16:04:25 发布