Каждый лифт имеет набор состояний.Конструкция класса с использованием принципа SOLID с использованием C#
• Техническое обслуживание: лифт не реагирует на внешние сигналы (только для собственных сигналов).
• Стенд: лифт закреплен на полу. Если он получает вызов. И лифт на том этаже, двери открыты. Если он находится на другом этаже, он движется в этом направлении.
• Вверх: лифт поднимается вверх. Каждый раз, когда он достигает пола, он проверяет, нужно ли останавливаться. Если это так, он останавливается и открывает двери. Он ждет определенное количество времени и закрывает дверь (если только что-то не проходит через них, а затем удаляет пол из списка запросов и проверяет, есть ли другой запрос. Если тогда лифт снова начинает двигаться, если он не входит в состояние стенд
• вниз:. нравится вверх, но в обратном направлении
ПРИМЕЧАНИЕ: Некоторые лифты не начинаются в нижней части/first_floor Esp в случае неба скреперов min_floor & max_floor две дополнительные атрибуты для лифта...
Мой демо-дизайн:
public abstract class Elevator
{
protected bool[] floorReady;
protected int CurrentFloor = 1;
protected int topfloor;
protected ElevatorStatus Status = ElevatorStatus.STOPPED; //ElevatorStatus is enum
protected virtual void Stop(int floor){}
protected virtual void Descend(int floor) {}
protected virtual void Ascend(int floor) {}
protected virtual void StayPut() {}
protected virtual void FloorPress (int floor){}
}
interface ILogger
{
void RegisterLog(string Message)
}
public FileLogger : ILogger
{
void RegisterLog(string Message)
{
//Custom Code
}
}
public class MyElevator : Elevator
{
// All method overrride for base
}
//Client class
class program
{
public static void main()
{
//DI for calling Looging
}
}
Может кто-нибудь мне помочь разработать свои классы, которые удовлетворяют всем SOLID принцип ..
Спасибо заранее ... Я хочу разработать Лифт Simulator с использованием SOLID принципы.
Добро пожаловать! Извините, нас здесь нет, чтобы написать код для вас. Почему бы не сделать себе чашку чая? читать SOLID; выполнить некоторые эксперименты и посмотреть, как это происходит. Если вы столкнулись с конкретной проблемой, вернитесь сюда и опубликуйте об этом. Желаю вам здоровья! :) – MickyD
Позвольте мне загрузить мою попытку в GitHub и поделиться ссылкой здесь ... Это звучит хорошо? –
Замечательно, что у вас есть код для показа. Можете ли вы просто разместить минимальную сумму здесь, [редактируя] (http://stackoverflow.com/posts/37266529/edit) свой вопрос? Peeps вообще не будут смотреть на чужие сайты или код, который слишком длинный. Спасибо, приятель – MickyD