CSHARPPROGLIB Telegram 6267
💎 Вспоминаем SOLID

SOLID — это 5 принципов объектно-ориентированного проектирования. Давайте повторим эту базу.

Single Responsibility Principle (Принцип единственной ответственности)

Каждый класс должен иметь только одну причину для изменения.

Плохо: класс UserManager и сохраняет пользователя в БД, и отправляет email.
Хорошо: UserRepository хранит, EmailService отправляет письма.

Open/Closed Principle (Принцип открытости/закрытости)

Классы должны быть открыты для расширения, но закрыты для изменения.

Новый функционал добавляем через расширение, а не переписывание старого кода.

Пример: вместо переписывания метода — создаём новый подкласс или внедряем стратегию.

Liskov Substitution Principle (Принцип подстановки Барбары Лисков)

Объекты подклассов должны работать так же, как объекты родителя.

Если Square наследуется от Rectangle, он должен вести себя как прямоугольник, а не ломать ожидания.

Суть: наследование не должно рушить логику программы.

— Interface Segregation Principle (Принцип разделения интерфейсов)

Лучше много маленьких интерфейсов, чем один огромный.

Плохо: интерфейс IMachine с методами print(), scan(), fax().
Хорошо: IPrinter, IScanner, IFax. Каждый класс реализует только нужное.

— Dependency Inversion Principle (Принцип инверсии зависимостей)

Зависимости должны быть от абстракций, а не от конкретных классов.

Плохо: класс ReportGenerator напрямую вызывает MySQLDatabase.
Хорошо: ReportGenerator работает с интерфейсом Database, а уже конкретная БД подставляется снаружи.

Без SOLID код быстро превращается в спагетти, где одно изменение ломает всё.

💬 Пишите в комменты как вы объясняете, что такое SOLID

🐸Библиотека шарписта

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥4🥱31😁1



tgoop.com/csharpproglib/6267
Create:
Last Update:

💎 Вспоминаем SOLID

SOLID — это 5 принципов объектно-ориентированного проектирования. Давайте повторим эту базу.

Single Responsibility Principle (Принцип единственной ответственности)

Каждый класс должен иметь только одну причину для изменения.

Плохо: класс UserManager и сохраняет пользователя в БД, и отправляет email.
Хорошо: UserRepository хранит, EmailService отправляет письма.

Open/Closed Principle (Принцип открытости/закрытости)

Классы должны быть открыты для расширения, но закрыты для изменения.

Новый функционал добавляем через расширение, а не переписывание старого кода.

Пример: вместо переписывания метода — создаём новый подкласс или внедряем стратегию.

Liskov Substitution Principle (Принцип подстановки Барбары Лисков)

Объекты подклассов должны работать так же, как объекты родителя.

Если Square наследуется от Rectangle, он должен вести себя как прямоугольник, а не ломать ожидания.

Суть: наследование не должно рушить логику программы.

— Interface Segregation Principle (Принцип разделения интерфейсов)

Лучше много маленьких интерфейсов, чем один огромный.

Плохо: интерфейс IMachine с методами print(), scan(), fax().
Хорошо: IPrinter, IScanner, IFax. Каждый класс реализует только нужное.

— Dependency Inversion Principle (Принцип инверсии зависимостей)

Зависимости должны быть от абстракций, а не от конкретных классов.

Плохо: класс ReportGenerator напрямую вызывает MySQLDatabase.
Хорошо: ReportGenerator работает с интерфейсом Database, а уже конкретная БД подставляется снаружи.

Без SOLID код быстро превращается в спагетти, где одно изменение ломает всё.

💬 Пишите в комменты как вы объясняете, что такое SOLID

🐸Библиотека шарписта

#буст

BY Библиотека шарписта | C#, F#, .NET, ASP.NET




Share with your friend now:
tgoop.com/csharpproglib/6267

View MORE
Open in Telegram


Telegram News

Date: |

5Telegram Channel avatar size/dimensions So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. How to create a business channel on Telegram? (Tutorial) "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months.
from us


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM American