using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
abstract class OperSuper
{
public abstract double GetResult(double a,double b);
}
class Add:OperSuper
{
public override double GetResult(double a, double b)
{
return a + b;
}
}
class Minus : OperSuper
{
public override double GetResult(double a, double b)
{
return a - b;
}
}
class Context
{
OperSuper os = null;
double A,B;
public Context(OperSuper o,double a,double b)
{
os = o;
A = a;
B = b;
}
public double GetResult()
{
return os.GetResult(A,B);
}
}
class client
{
public static void Main()
{
Context c = new Context(new Add(), 10, 20);
Console.WriteLine(c.GetResult ());
c = new Context(new Minus(), 20, 10);
Console.WriteLine(c.GetResult());
}
}
}