Вопросы с тегом «object-oriented»

Методология, которая позволяет моделировать систему как набор объектов, которыми можно управлять и манипулировать модульным способом

6
Можете ли вы реализовать «объектно-ориентированное» программирование без ключевого слова класса?
Скажем, мы хотим предоставить абстракцию «счета» в банке. Вот один из подходов, использующий functionобъект в Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: …

9
Почему большинство «общеизвестных» императивных / OO-языков допускают неконтролируемый доступ к типам, которые могут представлять значение «ничего»?
Я читал о (не) удобстве иметь nullвместо (например) Maybe. Прочитав эту статью , я убедился, что было бы намного лучше использоватьMaybe (или что-то подобное). Однако я удивлен, увидев, что все «общеизвестные» императивные или объектно-ориентированные языки программирования по-прежнему используют null(что обеспечивает неконтролируемый доступ к типам, которые могут представлять значение «ничего»), и …

7
В чем разница между «сокрытием данных» и «инкапсуляцией»?
Я читаю «Параллелизм Java на практике», и там говорится: «К счастью, те же объектно-ориентированные методы, которые помогают вам писать хорошо организованные, поддерживаемые классы, такие как инкапсуляция и скрытие данных, могут также помочь вам создать поточно-ориентированный классы «. Проблема № 1 - я никогда не слышал о сокрытии данных и не …

12
Почему класс должен быть чем-то отличным от «абстрактного» или «окончательного / запечатанного»?
После более 10 лет программирования на Java / C # я создаю либо: абстрактные классы : контракт не предназначен для создания как есть. заключительные / закрытые классы : реализация не предназначена для использования в качестве базового класса для чего-то другого. Я не могу представить себе ситуацию, в которой простой «класс» …

12
Насколько велика для класса?
Я давно работаю разработчиком (мне 49 лет), но я довольно новичок в объектно-ориентированной разработке. Я читал об ОО со времен Эйфеля Бертранда Мейера, но мало занимался программированием. Дело в том, что каждая книга по ОО-дизайну начинается с примера лодки, автомобиля или какого-либо обычного объекта, который мы часто используем, и они …

10
Сколько слишком много интерфейсов в классе? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Вероятно, я бы посчитал запахом кода или даже анти-паттерном иметь класс, реализующий 23 интерфейса. …

6
Делает ли изучение функционального языка лучшим программистом ООП? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Как программист на Java / C # / C ++ я много слышал о …

6
Каковы предостережения от реализации фундаментальных типов (таких как int) как классов?
При проектировании и implenting объектно-ориентированный язык программирования, в какой - то момент один должен сделать выбор о реализации основных типов (как int, float, doubleили их эквиваленты) , как классы или что - то другое. Очевидно, что языки в семействе C имеют тенденцию не определять их как классы (Java имеет специальные …

7
Игнорирует ли функциональное программирование преимущества, полученные от «Критериев, которые будут использоваться при декомпозиции систем на модули» (скрытие данных)?
Есть классическая статья под названием «Критерии для использования при декомпозиции систем на модули», которую я только что прочитал впервые. Это имеет смысл для меня и, вероятно, является одной из тех статей, на которых основывается ООП. Его вывод: Мы попытались продемонстрировать на этих примерах, что почти всегда неправильно начинать декомпозицию системы …

9
Что может пойти не так, если нарушится принцип подстановки Лискова?
Я следил за этим высоко оцененным вопросом о возможном нарушении принципа подстановки Лискова. Я знаю, что такое принцип подстановки Лискова, но мне все еще неясно, что может пойти не так, если я, как разработчик, не задумываюсь над этим принципом при написании объектно-ориентированного кода.

12
ТВЕРДЫЙ против избежания преждевременной абстракции
Я понимаю, что SOLID должен выполнять, и регулярно использую его в ситуациях, когда модульность важна и ее цели явно полезны. Однако две вещи мешают мне применять его последовательно в моей кодовой базе: Я хочу избежать преждевременной абстракции. По моему опыту, рисование линий абстракции без конкретных вариантов использования (типа, существующего сейчас …

14
Насколько велики базы не OO кода?
Я всегда вижу, что абстракция - очень полезная функция, предоставляемая ОО для управления базой кода. Но как управлять большими базами не-OO кода? Или они просто становятся " Большим Грязевым комом "? Обновление: казалось, все думают, что «абстракция» - это просто модульность или скрытие данных. Но IMHO, это также означает использование …

8
Существуют ли варианты ООП, в которых некоторые или все принципы SOLID противоположны чистому коду?
Недавно у меня был разговор с моим другом об ООП в разработке видеоигр. Я объяснял архитектуру одной из моих игр, которая, к удивлению моего друга, содержала много небольших классов и несколько уровней абстракции. Я утверждал, что это было результатом того, что я сосредоточился на том, чтобы дать всем Единую Ответственность, …

6
Является ли функциональное программирование надмножеством объектно-ориентированного?
Чем более функциональное программирование я выполняю, тем больше я чувствую, что оно добавляет дополнительный уровень абстракции, который похож на то, как слой лука - все охватывает предыдущие уровни. Я не знаю, так ли это, поэтому, исходя из принципов ООП, с которыми я работал годами, кто-нибудь может объяснить, как функционал отображает …

5
Как преобразовать ОО-программу в функциональную?
У меня возникают трудности с поиском ресурсов для написания программ в функциональном стиле. Самая сложная тема, которую я мог найти в Интернете, - это использование структурной типизации для сокращения иерархии классов; большинство просто имеют дело с тем, как использовать карту / сложение / уменьшение / и т.д. для замены императивных …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.