HukuTa45 / HomeWork363

0 stars 0 forks source link

Gennady Parshukov #16

Open Jophase opened 2 weeks ago

Jophase commented 2 weeks ago

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)Не следует писать названия переменных транслитом, также нарушен принцип открытости/закрытости

HukuTa45 commented 2 weeks ago

Ну принципы верно определил Как исправить:

  1. Ввести интерфейс IMessageService и сделать так, чтобы Notification зависел от абстракции, а не от конкретной реализации.

  2. Вынести рыбу в отдельный класс, который не будет переопределять метод MakeSound, или создать новый интерфейс для животных, которые могут издавать звуки.

  3. Каждый тип платежа должен быть отдельным классом, наследующим базовый класс PaymentMethod, и каждый класс должен иметь метод для обработки платежа. Таким образом, добавление нового способа оплаты не потребует изменения существующего кода.