Сырно-проектировщик, помоги найти изящный способ решения проблемы, необходимо получить описание всех используемых мной классов.
Например:
namespace Touhou
{
interface IЛетающий
{
void Летать();
}
class ЛететьБыстро : IЛетающий
{
private string описание = "Быстрый полет";
public void Летать()
{
/*Реализация*/
}
}
interface IСпелкарта
{
void ИспользоватьСпелкарту();
}
class ЗнакМорозаИгольчатыйЛёд : IСпелкарта
{
private string описание = "Использована спелл-карта «Знак мороза „Игольчатый лёд“»";
public void ИспользоватьСпелкарту()
{
/*Реализация*/
}
}
interface IУмножить4на2
{
void Умножить4на2();
}
class Математика
{
private string описание = "Найти Тройной Интеграл";
public void НайтиТройнойИнтеграл()
{
/*Реализация*/
}
}
class Гений : IУмножить4на2
{
private string описание = "9";
public void Умножить4на2()
{
/*Реализация*/
Математика математика = new Математика();
математика.НайтиТройнойИнтеграл();
/*Реализация*/
}
}
class Тоходевочка
{
private IЛетающий _летающий;
private IСпелкарта _спелкарта;
private IУмножить4на2 _умножить4На2;
private string описание;
public Тоходевочка(IЛетающий летающий, IСпелкарта спелкарта, IУмножить4на2 умножить4На2, string описание)
{
_летающий = летающий;
_спелкарта = спелкарта;
_умножить4На2 = умножить4На2;
this.описание = описание;
}
public void Летать();
{
_летающий.Летать();
}
public void ИспользоватьСпелкарту();
{
_спелкарта.ИспользоватьСпелкарту();
}
public void Умножить4на2();
{
_умножить4На2.Умножить4на2();
}
public string ПолучитьОписание()
{
/* ??? */
}
}
class Program
{
static void Main(string[] args)
{
Тоходевочка Сырно = new Тоходевочка(new ЛететьБыстро(), new ЗнакМорозаИгольчатыйЛёд(), new Гений(), "Сырно не бака");
Сырно.Летать();
Сырно.ИспользоватьСпелкарту();
Сырно.Умножить4на2();
Сырно.ПолучитьОписание();
}
}
}
Я хочу получить в итоге описание: Быстрый полет Использована спелл-карта «Знак мороза „Игольчатый лёд“» Найти Тройной Интеграл 9