Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Task #888239 » Program.cs

Евгений Миненко, 2020-09-21 10:06 AM

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OPG1
{
//ФАСАД
public class Facade
{
protected Subsystem1 _subsystem1;

protected Subsystem2 _subsystem2;

public Facade(Subsystem1 subsystem1, Subsystem2 subsystem2)
{
this._subsystem1 = subsystem1;
this._subsystem2 = subsystem2;
}

public string Operation()
{
// типа сложная функциональность
string result = "Арифметические процессы\n";
result += "1 число:\n";
result += this._subsystem2.operationX();
result += "\n";
result += "2 число:\n";

result += this._subsystem2.operationY();
result += "\n";
result += this._subsystem1.operationN();
result += this._subsystem2.operationYX();
result += "\n";
result += this._subsystem1.operation1();
result += this._subsystem2.operationXY();
return result;
}

}
public class Subsystem1
{
public string operation1()
{
return "Добавление\n";
}

public string operationN()
{
return "Вычитание\n";
}
}
public class Subsystem2
{
double x = 10;
double y = 20;
public double operationX()
{
return x;
}

public double operationY()
{
return y;
}

public double operationXY()
{
return x + y;
}
public double operationYX()
{
return x - y;
}
}

class Client
{
//легкий интерфейс
public static void ClientCode(Facade facade)
{
Console.Write(facade.Operation());
}
}

class Program
{
static void Main(string[] args)
{
Subsystem1 subsystem1 = new Subsystem1();
Subsystem2 subsystem2 = new Subsystem2();
Facade facade = new Facade(subsystem1, subsystem2);
Client.ClientCode(facade);
Console.ReadLine();
}
}
}
(2-2/2)