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

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

10
Должны ли мы избегать пользовательских объектов в качестве параметров?
Предположим, у меня есть пользовательский объект, студент : public class Student{ public int _id; public String name; public int age; public float score; } И класс Window , который используется для отображения информации об ученике : public class Window{ public void showInfo(Student student); } Это выглядит вполне нормально, но я …

9
Объяснение того, как «говори, не спрашивай» считается хорошим ОО
Этот пост был опубликован на Hacker News с несколькими отзывами. Исходя из C ++, большинство этих примеров, кажется, идут вразрез с тем, чему меня учили. Например, пример № 2: Плохо: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end по сравнению с хорошим: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature …

8
LSP vs OCP / Замена Лискова VS Open Закрыть
Я пытаюсь понять твердые принципы ООП и пришел к выводу, что у LSP и OCP есть некоторые сходства (если не сказать больше). принцип открытого / закрытого состояния гласит, что «программные объекты (классы, модули, функции и т. д.) должны быть открыты для расширения, но закрыты для модификации». Проще говоря, LSP гласит, …

3
Что является лучшей практикой - вспомогательные методы как экземпляры или статические?
Этот вопрос субъективен, но мне было просто любопытно, как к этому подходит большинство программистов. Пример ниже приведен на псевдо-C #, но это также должно относиться к Java, C ++ и другим языкам ООП. В любом случае, когда я пишу вспомогательные методы в моих классах, я склонен объявлять их как статические …

3
Каковы преимущества ООП на основе прототипов перед ООП на основе классов?
Когда я впервые начал программировать Javascript после того, как в основном работал с ООП в контексте языков, основанных на классах, я был озадачен тем, почему ООП на основе прототипов когда-либо предпочтительнее ООП на основе классов. Каковы структурные преимущества использования ООП на основе прототипа, если таковые имеются? (Например, можем ли мы …

2
Что Алан Кей имел в виду под «заданием» в «Ранней истории Smalltalk»?
Я читал «Раннюю историю Smalltalk», и есть несколько упоминаний о «назначении», которые заставляют меня усомниться в моем понимании его значения: Хотя ООП исходило из многих мотивов, два были центральными. Крупномасштабная задача заключалась в том, чтобы найти лучшую модульную схему для сложных систем, связанных с сокрытием деталей, а мелкомасштабная - найти …

3
Почему анемичная модель предметной области считается плохой в C # / OOP, но очень важной в F # / FP?
В сообщении в блоге на F # для развлечения и выгоды говорится: В функциональном дизайне очень важно отделить поведение от данных. Типы данных просты и «тупы». И затем отдельно у вас есть ряд функций, которые действуют на эти типы данных. Это полная противоположность объектно-ориентированному дизайну, где поведение и данные должны …

5
я должен бросить исключение из конструктора?
Я знаю, что я могу выбросить исключение из конструктора в PHP, но я должен это сделать? Например, если значение параметра не соответствует ожиданиям. Или я должен отложить создание исключения до вызова метода. Каковы преимущества и недостатки в обоих случаях?

9
Возвращение считается вредным? Может ли код быть функциональным без него?
Хорошо, так что название немного щелкает мышью, но если серьезно, я был на высоте , не проси пинка некоторое время. Мне нравится, как он поощряет использование методов в качестве сообщений в истинно объектно-ориентированном виде. Но у меня есть ноющая проблема, которая гремит в моей голове. Я подозреваю, что хорошо написанный …

8
Что должно быть разрешено внутри геттеров?
Я попал в интересный интернет-спор о методах получения и установки и инкапсуляции. Кто-то сказал, что все, что они должны сделать - это присваивание (установщики) или доступ к переменным (получатели), чтобы сохранить их «чистыми» и обеспечить инкапсуляцию. Прав ли я, что это полностью разрушило бы цель иметь в первую очередь геттеры …

8
До ООП члены структуры данных оставались открытыми?
Когда структура данных (например, очередь) реализуется с использованием языка ООП, некоторые члены структуры данных должны быть частными (например, количество элементов в очереди). Очередь также может быть реализована на процедурном языке с использованием structфункций и набора функций, которые работают на struct. Тем не менее, на процедурном языке вы не можете сделать …

3
В чем разница между подклассом и подтипом?
Самый высокий рейтинг ответа на этот вопрос о принципе замещения Лискова изо всех сил старается различить термины подтип и подкласс . Это также указывает на то, что некоторые языки объединяют два, а другие нет. Для объектно-ориентированных языков, с которыми я больше всего знаком (Python, C ++), «тип» и «класс» являются …

11
Переменные ошибок - это анти-шаблон или хороший дизайн?
Для обработки нескольких возможных ошибок, которые не должны останавливать выполнение, у меня есть errorпеременная, которую клиенты могут проверять и использовать для создания исключений. Это анти-паттерн? Есть ли лучший способ справиться с этим? Для примера этого в действии вы можете увидеть PHP mysqli API. Предположим, что проблемы видимости (средства доступа, открытая …


3
Это плохая практика, что хранилище вызовов контроллера вместо службы?
Это плохая практика, что хранилище вызовов контроллера вместо службы? объяснить больше: Я выяснил, что в хорошем дизайне контроллеры называют сервис, а сервис используют репозиторий. но иногда в контроллере у меня нет / нужна какая-то логика и мне просто нужно извлечь из базы данных и передать ее для просмотра. и я …

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