Я не писал кусок по поводу разработки программного обеспечения некоторое время, сочетая письма и кодирование может быть Hercolean Task. о, Боже!!!!
Эта статья о одной из моих любимых образцов дизайна «Цепочка ответственности».
По данным Wikipedia «Chain-of ответной ответственности — это конструкторская структура, состоящая из источника объектов команд и серии объектов обработки».
Для нас на самом деле получить и понимать важность COR в разработке программного обеспечения, нам нужно создать проблему, которую COR поможет нам решить без усилий.
Если (Пользователь) {//Расскажите пользователю, он/она не может видеть эту страницу} else {//Показать пользователя Страница}
Это плохой подход? АД НЕТ!!!! Помните правило поцелуя. Нет цен на запись сложных кодов, поэтому удерживайте ее просто, если это просто.
Мы развернули веб-приложение нашего клиента, и все хорошо, и DANDY. 4 месяца вниз по линии, мы получили звонок от нашего клиента «Эй, пожалуйста, мне нужно, чтобы вы работали на секретной странице, я не хочу, чтобы пользователи Нигерии могли видеть эту страницу». Ваш ответ был в порядке, я сделаю это.
Boom Вы отредактировали свой секретный код страницы к чему-то вроде этого;
Если (пользователь) {//Расскажите пользователю, он/она не может видеть эту страницу}, если (пользователь. IP) {//Расскажите пользователю, он/она не может видеть эту страницу} else {//Показать пользователя страницу}
Все еще не плохо, я думаю. Вы обновили приложение, и ваш клиент доволен новыми изменениями. Менее чем через две недели ваш постоянный клиент снова вызывал. Пожалуйста, я не хочу, чтобы бесплатные пользователи могли просматривать секретную страницу. В вашем обычном порядке вы работали в свой секретный код страницы и изменили код к этому;
Если (Пользователь) {//Расскажите пользователю, он/она не может видеть эту страницу}, если (Userip) {//сообщите пользователям он/Она не может видеть эту страницу}, если (user.status) {//Расскажите пользователю он/Она не видит эту страницу} else {//Показать пользователя страницу}
На данный момент ваш код начинает выглядеть как беспорядок, кроме того, что вы также нарушили второе правило твердого принципа (открытый и закрытый принцип) с самого времени, которое вы добавили условия, чтобы проверить, не ограничен, не ограничен. В любом случае, вы все равно не заботились; Это работает, это все, что вам нужно.
Ваш клиент Oliver Twist снова вызывал на этот раз, когда вы надоедите, клиент не хочет показывать странице пользователям, которые не провели до года, независимо от их местоположения и статуса.
Мальчик о мальчик !!! Давайте сделаем это своим обычным способом
Если (пользователь) {//Расскажите пользователю, он/она не может видеть эту страницу}, если (пользователь. IP) {//Расскажите пользователю, он/она не видит эту страницу}, если (user.status) {//расскажу пользователя он/Она не может видеть эту страницу}, если (user.registrationdate <«1 год») {//Расскажите пользователю он/Она не может видеть эту страницу}
else {//Показать пользователя страницу}
Теперь посмотрите на свой код … Вы гордитесь этим? Можете ли вы положить это в интервью? Я думаю, нет. Не похороните голову, потому что в следующей статье мы решим эту же проблему, используя COR, которая приведет к чистому, многоразову и расширяемому коду.
Оригинал: «https://dev.to/salamikola/chain-of-responsibility-506g»