VoV@

VoV@
Рейтинг
196
Регистрация
22.09.2007
Должность
Окупация
Интересы
Программирование
Sly32:
Это далеко не всегда возможно.
В принципе, понимание основных принципов ООП отвечает на вопросы когда и что использовать - инкапсуляция, наследование, полиморфизм....
Интерфейсы - хорошая штука, если уместны

Описать поведение интерфейсами можно всегда.

Вот если есть общее состояние, то тогда да, желательно использовать абстрактный класс, в котором инкапсулируется состояние, а всё поведение лучше реализовать через интерфейсы.

Если у нескольких объектов есть одинаковое поведение, то можно его реализацию вынести в базовый класс в виртуальные методы и при необходимости переопределять в наследниках. Но это всё равно интерфейсы.

Ladimir:
"Название села Убей, по утверждению историков, происходит от чувашского слова «Уба» (пер. на рус. – медведь)...".

Только на чувашском медведь - упа, а не уба.

Есть ещё вот такая деревня в моём районе:

Есть 2 способа - наследование и реализация интерфейсов. Из стартпоста я понял, что если применить наследование, то получается множественное наследование.

С этим связана куча граблей, по которым прошлись толпы разработчиков и большинство из них не рекомендуют использовать наследование от нескольких классов. В моём любимом C# множественное наследование прямо запрещено. А вот интерфейсов можно реализовать сколько угодно. Да и принципы SOLID рекомендуют использовать интерфейсы.

PS Все широкоизвестные паттерны проектирования можно реализовать, как через наследование, так и через интерфейсы. Вряд ли ТС придумал что-то новое, что не укладывается в паттерны GOF.

---------- Добавлено 14.05.2020 в 20:52 ----------

Solmyr:

Интерфейсы чуть ближе, но тоже вопрос же не про то. Интерфейсы, это как сделать так чтобы 3Д-рендерить можно было и автомобили и деревья. И автомобиль и дерево реализуют для этого одинаковый интерфейс.

Какое-то слишком узкое у вас получилось применение интерфейсов.

Solmyr:
В одних случаях его надо собирать на заводе. В других случаях им надо управлять на дороге. В третьих случаях надо его рендерить как 3D объект. По сути объект один, а поведение разное. Пропертя пересекаются частично, все-таки это реально один и тот же автомобиль, и, скажем, его длина нужна во всех трех случаях, но некоторые пропертя нужны только в одном сценарии использования - скажем цвет. А методы и вовсе почти не пересекаются.

Вопрос в том, что говорит теория программирования? Надо делать один класс для всех сценариев использования, или же делать разные классы для разных сценариев?

Удобнее делать 1 класс и реализовать в нём интерфейсы: собирать на заводе, управлять на дороге, рендерить как 3D объект. И в разные обработчики передавать класс по нужному интерфейсу. Всё логично же.

Brus-search:
Это, конечно, невинный мультик, но... Неужели никто не задумывался, а почему только у тихого маленького Пятачка было дома ружьё?

Мне его жалко. Я бы ему сайт продвинул

Sly32:
написанную вот таким коллегой как ты

Сам дурак 🍿

Sly32:
естественно! а то потом читаешь код и ужасаешься. Даже правильно переменные и методы не назовете, что бы потом кто-то смог нормально понять

Ишь ты, какие мы изнеженные стали 🙅

Обойдётесь переменными вида: x, y, i, j, a1, a2...a3 и т.п. Деды наши обходились как-то и вы обойдётесь 🚬

Помню ещё на плюсах ковырялись в:

#define true false;

и ничё, никто не умер ☝.

foxi:
Английский нужен чтоб потом найти нормально оплачиваемую работу.

Я комментировал сообщение про то, что

первый язык для программиста - АНГЛИЙСКИЙ
, а не про поиск работы. По этой фразе получается, что если английский не знаешь, даже не стоит пытаться лезть в программирование.

По софтскилам, вопросов нет, с английским лучше, чем без.

---------- Добавлено 25.04.2020 в 16:22 ----------

SeVlad:
2. По старым популярным стекам действительно инфы на русском более чем достаточно. (Правда, и лажи валом), а вот по относительно новым (та же моб разработка) уже значительно хуже.

Лажи и в английском валом, и её пропорционально столько же, сколько и на любом другом языке.

Тупость и Даннинга — Крюгер они наднациональны.

Sly32:
Глупость это то что вы пишете. Без яхыка будете вариться в мелкой луже.

Заблуждаетесь. Новичку никакой океан информации не нужен, даже противопоказан, с толку сбивает только.

И контента на русском далеко не лужа. Информации более, чем достаточно.

athe:
Фокси прав - первый язык для программиста - АНГЛИЙСКИЙ,

Эту мантру из года в год повторяют те, кто начинал программировать ещё в 90-х, когда интернет был по талонам а книги передавались из рук в руки.

Уже лет 10 начинающему программисту английский не особо-то и важен. По любой популярной технологии и языку достаточно материала на русском. И дело тут даже не в переводах, а именно в контенте, генерированном русскоязычными разрабами.

Для новичка пытаться тянуть одновременно английский и какой-нибудь JS сразу на английском - это глупость.

Даже перейдя на уровень мидла, достаточно английского уровня средней школы и уметь в ГуглТранслейт. Гораздо важнее работать в коллективе других программистов - это самый быстрый вариант наблатыкаться в любом языке.

ЗЫ. Чтобы научиться прогать, надо прогать, а не английский учить. Изучая английский, вы начнёте чуть лучше понимать английски, а не прогать.

Всего: 7154