Open Jophase opened 2 weeks ago
Ну принципы верно определил Как исправить:
Ввести интерфейс IMessageService и сделать так, чтобы Notification зависел от абстракции, а не от конкретной реализации.
Вынести рыбу в отдельный класс, который не будет переопределять метод MakeSound, или создать новый интерфейс для животных, которые могут издавать звуки.
Каждый тип платежа должен быть отдельным классом, наследующим базовый класс PaymentMethod, и каждый класс должен иметь метод для обработки платежа. Таким образом, добавление нового способа оплаты не потребует изменения существующего кода.
https://github.com/HukuTa45/HomeWork363/blob/a799518340267c6510e84def1ebcfcbfd0a98226/ConsoleApp1/FirstExample.cs#L3 1)Ошибка в данной строке связанна с принципом инверсии зависимостей, так как Notification зависит от EmailService. https://github.com/HukuTa45/HomeWork363/blob/a799518340267c6510e84def1ebcfcbfd0a98226/ConsoleApp1/SecondExample.cs#L3 2)Здесь нарушен Принцип подстановки Лисков , не все потомки класса Animal нуждаются в реализации класса MakeSound , а если заменить объект Fish на Animal , то произойдет ошибка. https://github.com/HukuTa45/HomeWork363/blob/a799518340267c6510e84def1ebcfcbfd0a98226/ConsoleApp1/SecondExample.cs#L21 2)Здесь стоит заменить метод на MakeSound() https://github.com/HukuTa45/HomeWork363/blob/a799518340267c6510e84def1ebcfcbfd0a98226/ConsoleApp1/ThirdExample.cs#L3 3)Не следует писать названия переменных транслитом, также нарушен принцип открытости/закрытости