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

91
Что делает C таким популярным в эпоху ООП? [закрыто]

Я много пишу на C и C ++, но не ожидал, что C будет вторым по популярности языком, немного уступая Java. Индекс сообщества программистов TIOBE Мне любопытно, почему в этом веке ООП C все еще так популярен? Обратите внимание, что 4 из 5 популярных языков программирования являются «современными»...

86
ООП сложно, потому что это не естественно?

Часто можно услышать, что ООП естественно соответствует тому, как люди думают о мире. Но я бы категорически не согласился с этим утверждением: мы (или, по крайней мере, я) концептуализируем мир с точки зрения отношений между вещами, с которыми мы сталкиваемся, но в центре внимания ООП находится...

85
Как вы избегаете добытчиков и сеттеров?

У меня были некоторые трудности с дизайном классов. Я читал, что объекты раскрывают их поведение, а не данные; следовательно, вместо использования методов получения / установки для изменения данных, методы данного класса должны быть «глаголами» или действиями, действующими на объект. Например, в...

84
Богатые доменные модели - как именно вписывается поведение?

В дебатах моделей предметной области Rich против Anemic Интернет полон философских советов, но не хватает авторитетных примеров. Цель этого вопроса - найти четкие рекомендации и конкретные примеры правильных моделей проектирования на основе доменов. (В идеале в C #.) Для реального примера эта...

82
Должны ли объекты в ООП представлять сущность?

Должен ли объект представлять сущность? Под организацией я имею в виду нечто вроде Product, Motor, А и ParkingLotт.д., физическая, или даже четкий нефизических концептуального объекта - то , что хорошо определен, с некоторыми основными данными явно принадлежащими к объекту, а также некоторые...

79
Существуют ли какие-либо ОО-принципы, которые практически применимы для Javascript?

Javascript - это объектно-ориентированный язык на основе прототипов, но он может быть основан на классах различными способами: Написание функций для самостоятельного использования в качестве классов Используйте изящную систему классов в фреймворке (например, mootools Class.Class ) Создайте его из...

77
В чем преимущество объектно-ориентированного программирования перед процедурным программированием?

Я пытаюсь понять разницу между процедурными языками, такими как C, и объектно-ориентированными языками, такими как C ++. Я никогда не использовал C ++, но я обсуждал со своими друзьями, как их различать. Мне сказали, что C ++ имеет объектно-ориентированные концепции, а также публичные и частные...

76
Почему базовые для всех объектов не рекомендуется в C ++

Страуструп говорит: «Не изобретайте сразу уникальную базу для всех ваших классов (класс Object). Как правило, вы можете сделать это лучше для многих / большинства классов». (Язык программирования C ++, четвертое издание, раздел 1.3.4) Почему базовый класс для всех вообще плохая идея, и когда имеет...

74
Почему многие разработчики программного обеспечения нарушают принцип открытого / закрытого?

Почему многие разработчики программного обеспечения нарушают принцип открытия / закрытия , изменяя многие вещи, такие как переименование функций, которые нарушают работу приложения после обновления? Этот вопрос приходит мне в голову после быстрой и непрерывной версий в библиотеке React . Каждый...

68
Что такое правильное использование downcasting?

Понижение означает преобразование из базового класса (или интерфейса) в подкласс или листовой класс. Примером снижения может быть, если вы приведете System.Objectк другому типу. Даункастинг непопулярен, может быть, пахнет кодом: доктрина объектно-ориентированного подхода предпочитает, например,...

68
Название этого антипаттерна? Поля как локальные переменные [закрыто]

В некотором коде, который я рассматриваю, я вижу вещи, которые морально эквивалентны следующему: public class Foo { private Bar bar; public MethodA() { bar = new Bar(); bar.A(); bar = null; } public MethodB() { bar = new Bar(); bar.B(); bar = null; } } Поле barздесь является логически локальной...

68
Почему есть частные статические методы?

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

64
Разве я не могу использовать все статические методы?

В чем разница между двумя методами UpdateSubject ниже? Я чувствовал, что использование статических методов лучше, если вы просто хотите оперировать сущностями. В каких ситуациях мне следует использовать нестатические методы? public class Subject { public int Id {get; set;} public string Name { get;...

64
Уточнить принцип единой ответственности

Принцип единой ответственности гласит, что класс должен делать одно и только одно. Некоторые случаи довольно ясны. Другие, однако, сложны, потому что то, что выглядит как «одна вещь» при просмотре на данном уровне абстракции, может быть множественным при просмотре на более низком уровне. Я также...

63
Этот класс дизайн нарушает принцип единой ответственности?

Сегодня у меня был спор с кем-то. Я объяснял преимущества наличия модели богатых доменов по сравнению с моделью анемичных доменов. И я продемонстрировал свою точку зрения с помощью простого класса, который выглядит так: public class Employee { public Employee(string firstName, string lastName) {...

62
Почему хорошо разбить программу на несколько классов? [закрыто]

Я все еще учусь в средней школе (поступаю в 10-й класс), и мне еще предстоит пройти настоящий курс компьютерного обучения в школе. Все, что я до сих пор делал, это через книги. Эти книги научили меня таким понятиям, как наследование, но как помогает разделение программы на несколько классов? Книги...

62
Разве MVC не против ООП?

Основная идея ООП заключается в объединении данных и поведения в единую сущность - объект. В процедурном программировании есть данные и отдельно алгоритмы, модифицирующие данные. В шаблоне Model-View-Controller данные и логика / алгоритмы размещаются в разных объектах, модели и контроллере...

58
ORM - это анти-паттерн? [закрыто]

У меня была очень стимулирующая и интересная дискуссия с коллегой об ORM и его плюсах и минусах. На мой взгляд, ORM полезен только в самых редких случаях. По крайней мере, по моему опыту. Но я не хочу перечислять свои собственные аргументы в настоящее время. Поэтому я спрашиваю вас, что вы думаете...

56
Как мне доказать или опровергнуть, что «объекты Бога» не правы?

Краткое описание проблемы: Короче говоря, я унаследовал кодовую базу и команду разработчиков, которую мне не разрешено заменять, и использование God Objects является большой проблемой. В дальнейшем я хочу, чтобы мы перефакторили вещи, но я получаю отпор от команд, которые хотят делать все с...

56
ООП выполняет обещание повторного использования кода? Какие есть альтернативы для повторного использования кода?

Возможно, самое большое обещание использования объектно-ориентированной парадигмы - это повторное использование кода. Некоторые оспаривают, что это было достигнуто. Почему это было (не) достигнуто? Позволяет ли повторное использование кода, как его определяет ООП, сделать проекты более...