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

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

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

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

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


8
Должна ли моя последовательная коллекция начинаться с индекса 0 или индекса 1?
Я создаю объектную модель для устройства, которое имеет несколько каналов. Существительные, используемые между клиентом и мной, Channelи ChannelSet. («Набор» не является семантически точным, потому что он упорядочен, а правильный набор - нет. Но это проблема для другого времени.) Я использую C #. Вот пример использования ChannelSet: // load a 5-channel …

3
Почему закрытый член доступен в статическом методе?
Ниже приведен псевдокод, я пробовал его на 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(); Почему вы можете сделать это в парадигме ООП и какая …

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

4
Почему Java не использует инкапсуляцию с некоторыми классами?
Мой вопрос связан с System.inи System.outклассами (там может быть и другими , как те , в библиотеке Standard). Почему это? Разве это не плохая практика в ООП? Разве это не должно быть использовано как: System.getIn()и System.getOut()? У меня всегда был этот вопрос, и я надеюсь, что смогу найти хороший ответ …

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

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


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

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

5
Является ли мое использование явного оператора приведения разумным или неудачным?
У меня есть большой объект: 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;} public string FieldN {get;set;} } Лично я нахожу концепцию явного …

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

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