Вопросы с тегом «inheritance»

10
Почему подклассы слишком плохи (и, следовательно, почему мы должны использовать прототипы, чтобы покончить с этим)?

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

10
Черты, Наследование и Интерфейсы в Groovy, когда их использовать?

Я изучаю Groovy, и я только что узнал о новой функции, добавленной в 2.3, которая является добавлением черт . Теперь мне кажется, что черты позволяют вам делать практически все, что может сделать суперкласс и интерфейс. Делает ли добавление Traits в Groovy наследование и интерфейсы устаревшими? А...

10
Интерфейс и наследование: лучшее из обоих миров?

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

10
Есть ли ситуация, когда было бы лучше использовать слабые ссылки вместо простой композиции?

Хотя в документах Java указано, что слабые ссылки предназначены главным образом для канонизации отображений, вы обнаружите, что многие , многие , многие люди в Интернете заявляют, что WeakHashMap идеально подходит для хранения метаданных объекта в течение его срока службы. Тем не менее, никто не...

10
Почему использование конструкторов не рекомендуется при создании прототипов?

Краткая справка: в JavaScript функция конструктора для каждого типа объекта имеет prototypeсвойство. prototypeОтносится к объекту , который каждый построенный объект использует в качестве следующего шага вверх в своей цепи прототипов. Если вы хотите, чтобы один тип был присущ другому типу, вы...

10
Является ли наследование Python стилем наследования «как есть» или композиционным стилем?

Учитывая, что Python допускает множественное наследование, как выглядит идиоматическое наследование в Python? В языках с единичным наследованием, таких как Java, наследование будет использоваться, когда вы можете сказать, что один объект «a-a» другого объекта и вы хотите разделить код между...

10
Является ли «если метод повторно используется без изменений, поместите метод в базовый класс или создайте интерфейс», это хорошее правило?

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

10
Наследование: действительно ли код из суперкласса * скопирован * в подкласс, или на него ссылается подкласс *?

Класс Subявляется подклассом класса Sup. Что это значит практически? Или, другими словами, каково практическое значение слова «наследование»? Вариант 1: Код из Sup фактически скопирован в Sub. (как в 'copy-paste', но без скопированного кода, визуально видимого в подклассе). Пример: methodA()метод...

9
Правильный дизайн, чтобы избежать использования dynamic_cast?

После некоторых исследований я не могу найти простой пример решения проблемы, с которой я часто сталкиваюсь. Допустим, я хочу создать небольшое приложение, в котором я могу создавать Squares, Circles и другие фигуры, отображать их на экране, изменять их свойства после их выбора, а затем вычислять...

9
Изменение сигнатуры метода для реализации классов в PHP

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

9
Откуда мы знаем, что предпочтение композиции перед обобщением - это всегда правильный выбор?

Независимо от того, существует объект физически или нет, мы можем выбрать его моделирование различными способами. Мы могли бы произвольно использовать обобщение или композицию во многих случаях. Тем не менее, принцип GoF «отдавай предпочтение композиции обобщению [sic]» побуждает нас использовать...

9
Наследование против композиции для шахматных фигур

Быстрый поиск этого стека обмена показывает, что в целом состав обычно считается более гибким, чем наследование, но, как всегда, это зависит от проекта и т. Д., И бывают случаи, когда наследование является лучшим выбором. Я хочу создать трехмерную шахматную игру, в которой каждая фигура имеет...