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

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

11
Когда вы хотите две ссылки на один и тот же объект?
В частности, в Java, но, вероятно, и в других языках: когда было бы полезно иметь две ссылки на один и тот же объект? Пример: Dog a = new Dog(); Dob b = a; Есть ли ситуация, когда это было бы полезно? Почему это предпочтительное решение для использования aвсякий раз, когда …

2
Являются ли монады жизнеспособной (возможно, предпочтительной) альтернативой иерархии наследования?
Я собираюсь использовать описание монад, не зависящее от языка, например, сначала для описания моноидов: Моноид это (примерно) набор функций , которые принимают некоторый тип в качестве параметра и возвращают один и тот же тип. Монада есть (примерно) набор функций , которые принимают обертки типа в качестве параметра и возвращает один …

4
Пустой интерфейс для объединения нескольких интерфейсов
Предположим, у вас есть два интерфейса: interface Readable { public void read(); } interface Writable { public void write(); } В некоторых случаях реализующие объекты могут поддерживать только один из них, но во многих случаях реализации будут поддерживать оба интерфейса. Люди, которые используют интерфейсы, должны сделать что-то вроде: // can't …

5
Ориентируется ли объект архитектуры Entity Component System по определению?
Является ли архитектура Entity System Component ориентированный объект, по определению? Это кажется более процедурным или функциональным для меня. Мое мнение таково, что это не мешает вам реализовать его на языке ОО, но это не будет идиоматичным, если вы будете делать это абсолютно уверенно. Кажется, что ECS отделяет данные (E & …

5
Почему современные библиотеки не используют ООП
Я программист C ++ для начинающих, но я достаточно хорошо понимаю концепции языка. Когда я начал изучать внешние библиотеки C ++, такие как SDL, OpenGL (возможно, и кое-что еще), к моему большому удивлению, я обнаружил, что они вообще не используют концепции C ++. Например, ни SDL, ни OpenGL не используют …

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

11
Информация скрывает больше чем соглашение?
В Java, C # и многих других строго типизированных, статически проверенных языках мы привыкли писать код следующим образом: public void m1() { ... } protected void m2() { ... } private void m2() { ... } void m2() { ... } Некоторые динамически проверяемые языки не предоставляют ключевые слова для …

11
ООП является доминирующей моделью программирования в реальном мире?
Объекты никогда? Ну, вряд ли когда-либо В разделе VIEWPOINT Communications of ACM я нашел интересную статью под названием « Объекты никогда? Ну, вряд ли когда-либо» ». Это радикально другая перспектива, чем объекты сначала или объекты поздно. Он предлагает «предметы-никогда» или, может быть, «предметы-аспирантуру». Автор рассказал об ООП и задал вопрос …

9
Являются ли методы init () запахом кода?
Есть ли цель объявить init()метод для типа? Я не спрашиваю, стоит ли нам отдавать предпочтение init()конструктору или как избежать объявленияinit() . Я спрашиваю, есть ли какое- либо обоснование для объявления init()метода (видя, насколько он распространен) или это запах кода, и его следует избегать. Эта init()идиома довольно распространена, но я пока …

7
Разница между паттерном и принципом
Чем отличаются объектно-ориентированные шаблоны проектирования и принципы? Это разные вещи? Насколько я понял, они оба пытаются достичь какой-то общей цели (например, гибкость). Так могу ли я сказать, что паттерн - это принцип, и наоборот? Принцип проектирования = SOLID (т.е. принцип инверсии зависимости) Шаблон проектирования = Gof (т.е. абстрактный шаблон фабрики)

3
Насколько неправильно говорить о «методах» C ++ (в отличие от «функций-членов»)?
Я понимаю, что в соответствии со спецификацией C ++ не существует такой вещи, как «метод», и некоторые (многие? Большинство?) Программисты C ++ считают «метод» Java-измом. С другой стороны, даже на форуме C ++ люди, кажется, говорят о методах без подергивания. Я ищу известные соглашения или общие практики в отношении этой …

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

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

3
Различия между «Java OOP» и «Pythonic OOP»? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

4
Сделать методы, которые не зависят от полей экземпляра, статическими?
Недавно я начал программировать в Groovy для инфраструктуры тестирования интеграции, для проекта Java. Я использую Intellij IDEA с плагином Groovy и с удивлением вижу в качестве предупреждения все методы, которые не являются статичными и не зависят от каких-либо полей экземпляра. В Java, однако, это не проблема (по крайней мере, с …

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