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

25
Это хорошая практика, чтобы избежать констант с помощью геттеров?

Является ли хорошей практикой замена констант, используемых вне классов, геттерами? Как пример, лучше использовать if User.getRole().getCode() == Role.CODE_ADMINили if User.getRole().isCodeAdmin()? Это привело бы к этому классу: class Role { constant CODE_ADMIN = "admin" constant CODE_USER = "user"...

25
Почему плохо писать что-то на языке X, как будто вы пишете программу на языке Y с точки зрения использования общей парадигмы кодирования [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, редактируя этот пост . Закрыто 5 лет назад . Некоторое время назад я задал вопрос на SO о чем-то,...

25
Почему закрытый член доступен в статическом методе?

Ниже приведен псевдокод, я пробовал его на Java и PHP, и оба работали: class Test { private int a = 5; public static function do_test(){ var t = new Test(); t.a = 1; print t.a // 1 } } Test::do_test(); Почему вы можете сделать это в парадигме ООП и какая от этого...

25
Как мне добавить функциональность к объекту, который уже существует?

У меня есть интерфейс, который имеет определенное количество четко определенных функций. Скажем так: interface BakeryInterface { public function createCookies(); public function createIceCream(); } Это хорошо работает для большинства реализаций интерфейса, но в некоторых случаях мне нужно добавить...

25
Должна ли моя последовательная коллекция начинаться с индекса 0 или индекса 1?

Я создаю объектную модель для устройства, которое имеет несколько каналов. Существительные, используемые между клиентом и мной, Channelи ChannelSet. («Набор» не является семантически точным, потому что он упорядочен, а правильный набор - нет. Но это проблема для другого времени.) Я использую C #....

25
Как я могу применить концепции ООП для создания простого, но реального веб-приложения? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, редактируя этот пост . Закрыто 4 года назад . Locked . Этот вопрос и его ответы заблокированы, потому что...

25
Что это значит, когда кто-то говорит «Инкапсулировать то, что меняется»?

Один из принципов ООП, с которыми я столкнулся, это: - Инкапсулируйте то, что меняется. Я понимаю, что буквальное значение фразы, то есть скрыть, что меняется. Тем не менее, я не знаю, как именно это будет способствовать улучшению дизайна. Может кто-нибудь объяснить это на хорошем...

24
Почему конструктор должен быть внутренним классом, а не в своем собственном файле классов?

Многие Builder Patternпримеры делают Builderвнутренний класс объекта, который он создает. Это имеет некоторый смысл, поскольку указывает на то, что Builderстроит. Однако в статически типизированном языке мы знаем, что Builderстроит. С другой стороны, если Builderэто внутренний класс, вы должны...

24
Много маленьких классов против логического (но) сложного наследования

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

24
Является ли мое использование явного оператора приведения разумным или неудачным?

У меня есть большой объект: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } и специализированный, DTO-подобный объект: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;}...

24
Как правильно моделировать эту реальную деятельность, которая, кажется, нуждается в циклических ссылках в ООП?

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

24
Является ли это анти-паттерном, если свойство класса создает и возвращает новый экземпляр класса?

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

24
Шаблон для класса, который делает только одно

Допустим, у меня есть процедура, которая делает вещи : void doStuff(initalParams) { ... } Теперь я обнаружил, что «делать вещи» - довольно сложная операция. Процедура становится большой, я делю ее на несколько более мелких процедур, и вскоре я понимаю, что наличие некоторого состояния было бы...

24
Лучший способ загрузить настройки приложения

Простой способ сохранить настройки приложения Java представлен текстовым файлом с расширением «.properties», содержащим идентификатор каждого параметра, связанного с конкретным значением (это может быть число, строка, дата и т. Д.) , C # использует аналогичный подход, но текстовый файл должен...

23
Являются ли диаграммы классов UML адекватными для проектирования систем JavaScript?

Учитывая, что UML ориентирован на более классический подход к объектной ориентации, все же можно ли его надежно использовать для проектирования систем JavaScript? Одна конкретная проблема, которую я вижу, состоит в том, что диаграммы классов, на самом деле, представляют собой структурное...

23
Является ли парадигма объектно-ориентированного программирования устаревшей, поскольку она антимодульная и антипараллельная? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Я прочитал противоречивую статью « Обучение ФП первокурсникам», которую написал...

23
Как чисто функциональные языки обрабатывают модульность?

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

23
Объектно-ориентированный дизайн

Предположим, у вас есть следующее: +--------+ +------+ | Animal | | Food | +-+------+ +----+-+ ^ ^ | | | | +------+ +-------+ | Deer | | Grass | +------+ +-------+ Deerнаследует от Animalи Grassнаследует от Food. Все идет нормально. Animalобъекты могут есть Foodобъекты. Теперь давайте немного...

23
Почему многие языки динамического программирования с утиными типами используют подход на основе классов вместо ООП на основе прототипов?

Поскольку довольно много динамических языков программирования имеют функцию утилитной типизации , и они также могут открывать и изменять методы класса или экземпляра в любое время (например, Ruby и Python ), тогда… Вопрос 1) Зачем нужен класс на динамическом языке? Почему язык спроектирован таким...