Интерфейсы, просто подскажите с чего начать - C#
Формулировка задачи:
Не могу понять с чего мне начать все это делать. может подскажите. Не могу себе представить как это все будет выглядеть. Спасибо.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
* Реализовать системы электрических источников и приборов, соединенных между собой через шнуры.
* В интерфейсах должны быть предусмотрена возможность получения информации о напряжении и максимальной мощности, которую поддерживает элемент.
* Прибор должен иметь наименование, потребляемую мощность, а источник и провод – списки подключенных приборов.
* Интерфейсы:
* IElectricSource (источник тока)
* IElectricAppliance (электрический прибор
* IElectricWire (электрический шнур)
* Классы:
* SolarBattery (солнечная батарея)
* DieselGenerator (дизельный генератор)
* NuclearPowerPlant (атомная электростанция)
* Kettle (чайник)
* Lathe (токарный станок)
* Refrigerator (холодильник)
* ElectricPowerStrip (электрический удлинитель)
* HighLine (высоковольтная линия)
* StepDownTransformer (понижающий трансформатор, должен реализовывать интерфейсы и потребителя и источника тока)
*
*/
namespace IElectric
{
interface IElectricSource<T>
{
}
interface IElectricAppliance<T>
{
}
interface IElectricWire<T>
{
}
class Program
{
static void Main(string[] args)
{
}
}
}Решение задачи: «Интерфейсы, просто подскажите с чего начать»
textual
Листинг программы
public abstract class ElectricAppliance
{
string Name { get; }
double Voltage { get; }
double Power { get; }
}
public interface IElectricSource
{
IEnumerable<IElectricAppliance> ConnectedAppliances { get; }
}
public interface IElectricSpender
{
IElectricSource ElectricSource { get; }
}
// Розетка
// Можете переделать под вашу "HighLine (высоковольтная линия)"
// Socket <-(has-a)- ElectricAppliance
// Socket <-(is-a)- IElectricSource
public class Socket : ElectricAppliance, IElectricSource
{
public string Name { get; }
public double Voltage { get; }
public double Power { get; }
public IEnumerable<IElectricAppliance> ConnectedAppliances { get; }
}
// Kettle <-(has-a)- ElectricAppliance
// Kettle <-(is-a)- IElectricSpender
public class Kettle : ElectricAppliance, IElectricSpender
{
public string Name { get; }
public double Voltage { get; }
public double Power { get; }
public IElectricSource ElectricSource { get; }
}