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

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

9
Как полиморфизм используется в реальном мире? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 2 года назад . Я пытаюсь понять, как полиморфизм используется в реальном проекте, но я могу …

7
Почему создание экземпляров такое, какое оно есть?
Я изучал C # в течение последних шести месяцев или около того и сейчас углубляюсь в Java. Мой вопрос касается создания экземпляров (на любом языке, на самом деле), и это больше: интересно, почему они сделали это таким образом. Возьми этот пример Person Bob = new Person(); Есть ли причина, по …

4
Зачем определять объект Java, используя интерфейс (например, Map), а не реализацию (HashMap)
В большинстве кодов Java люди видят объекты Java следующим образом: Map<String, String> hashMap = new HashMap<>(); List<String> list = new ArrayList<>(); вместо того: HashMap<String, String> hashMap = new HashMap<>(); ArrayList<String> list = new ArrayList<>(); Почему предпочтительнее определять Java-объект с использованием интерфейса, а не реализации, которая фактически будет использоваться?

5
Когда использовать интерфейсы (модульное тестирование, IoC?)
Я подозреваю, что допустил ошибку школьника и ищу уточнения. Многие классы в моем решении (C #) - осмелюсь сказать, что большинство - я закончил тем, что написал соответствующий интерфейс для. Например, интерфейс «ICalculator» и класс «Calculator», который его реализует, хотя я вряд ли заменю этот калькулятор другой реализацией. Кроме того, …

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

5
Является ли СРП (принцип единой ответственности) объективным?
Рассмотрим двух дизайнеров пользовательского интерфейса, которые хотят создавать привлекательные для пользователя дизайны. «Привлечение пользователей» - это концепция, которая не является объективной и находится только в сознании дизайнеров. Таким образом, дизайнер А может, например, выбрать красный цвет, а дизайнер Б - синий. Дизайнер A создает макет, который полностью отличается от дизайнера …

5
лучший способ «представить» OOP / OOD команде опытных инженеров C ++
Я ищу эффективный способ, который также не кажется оскорбительным, чтобы представить концепции ООП существующим членам команды? Мои товарищи по команде не новички в ОО языках. Мы давно занимаемся C ++ / C #, поэтому сама технология знакома. Тем не менее, я смотрю по сторонам и без особых усилий (в основном …

6
Метод цепочки против инкапсуляции
Существует классическая проблема ООП цепочки методов по сравнению с методами с одной точкой доступа: main.getA().getB().getC().transmogrify(x, y) против main.getA().transmogrifyMyC(x, y) Первый, кажется, имеет то преимущество, что каждый класс отвечает только за меньший набор операций и делает все намного более модульным - добавление метода к C не требует никаких усилий в A, …

11
Что сделало объектно-ориентированное программирование успешным? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …


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

5
MVC: Контролер нарушает принцип единой ответственности?
Принцип Единой Ответственности гласит, что «класс должен иметь одну причину изменения». В паттерне MVC работа Контроллера заключается в том, чтобы быть посредником между представлением и моделью. Он предлагает интерфейс для представления отчетов о действиях, выполненных пользователем в графическом интерфейсе (например, позволяя представлению вызывать controller.specificButtonPressed()), и способен вызывать соответствующие методы в …

4
Когда перемещать общее поле в базовый класс?
В настоящее время у меня есть два производных класса, Aи Bоба имеют общее поле, и я пытаюсь определить, должно ли оно перейти в базовый класс. На него никогда не ссылаются из базового класса, и говорят, что если в какой-то момент в будущем будет получен другой класс, Cкоторый не имеет _field1, …

2
Должна ли сериализация и десериализация быть обязанностью сериализуемого класса?
В настоящее время я нахожусь на стадии (пере) проектирования нескольких классов моделей приложения на C # .NET. (Модель как в М MVC). Классы моделей уже имеют множество хорошо спроектированных данных, поведений и взаимосвязей. Я переписываю модель с Python на C #. В старой модели Python, я думаю, я вижу бородавку. …

5
Является ли семантический контракт интерфейса (ООП) более информативным, чем сигнатура функции (ФП)?
Некоторые говорят, что если вы доведете принципы SOLID до крайности, вы в конечном итоге окажетесь в функциональном программировании . Я согласен с этой статьей, но думаю, что при переходе от интерфейса / объекта к функции / закрытию теряется некоторая семантика, и я хочу знать, как функциональное программирование может уменьшить потери. …

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