Я читал о шаблонах проектирования и читал, что шаблон проектирования прототипа избавляет от чрезмерного создания подклассов. Почему подклассы плохо? Какое преимущество даст использование прототипа по сравнению с...
Я читал о шаблонах проектирования и читал, что шаблон проектирования прототипа избавляет от чрезмерного создания подклассов. Почему подклассы плохо? Какое преимущество даст использование прототипа по сравнению с...
Я изучаю Groovy, и я только что узнал о новой функции, добавленной в 2.3, которая является добавлением черт . Теперь мне кажется, что черты позволяют вам делать практически все, что может сделать суперкласс и интерфейс. Делает ли добавление Traits в Groovy наследование и интерфейсы устаревшими? А...
Я «открыл» интерфейсы и начал любить их. Прелесть интерфейса в том, что это контракт, и любой объект, который выполняет этот контракт, может использоваться везде, где требуется этот интерфейс. Проблема с интерфейсом состоит в том, что у него не может быть реализации по умолчанию, что является...
Хотя в документах Java указано, что слабые ссылки предназначены главным образом для канонизации отображений, вы обнаружите, что многие , многие , многие люди в Интернете заявляют, что WeakHashMap идеально подходит для хранения метаданных объекта в течение его срока службы. Тем не менее, никто не...
Краткая справка: в JavaScript функция конструктора для каждого типа объекта имеет prototypeсвойство. prototypeОтносится к объекту , который каждый построенный объект использует в качестве следующего шага вверх в своей цепи прототипов. Если вы хотите, чтобы один тип был присущ другому типу, вы...
Учитывая, что Python допускает множественное наследование, как выглядит идиоматическое наследование в Python? В языках с единичным наследованием, таких как Java, наследование будет использоваться, когда вы можете сказать, что один объект «a-a» другого объекта и вы хотите разделить код между...
Мой коллега придумал эмпирическое правило для выбора между созданием базового класса или интерфейса. Он говорит: Представьте себе каждый новый метод, который вы собираетесь реализовать. Для каждого из них рассмотрим следующее: будет ли этот метод реализован более чем одним классом именно в этой...
Класс Subявляется подклассом класса Sup. Что это значит практически? Или, другими словами, каково практическое значение слова «наследование»? Вариант 1: Код из Sup фактически скопирован в Sub. (как в 'copy-paste', но без скопированного кода, визуально видимого в подклассе). Пример: methodA()метод...
После некоторых исследований я не могу найти простой пример решения проблемы, с которой я часто сталкиваюсь. Допустим, я хочу создать небольшое приложение, в котором я могу создавать Squares, Circles и другие фигуры, отображать их на экране, изменять их свойства после их выбора, а затем вычислять...
Есть ли достойный обходной путь к отсутствию в Generics PHP, позволяющего статический контроль кода для выявления согласованности типов? У меня есть абстрактный класс, который я хочу разделить на подклассы, а также обеспечить, чтобы один из методов изменился с получения параметра одного типа на...
Независимо от того, существует объект физически или нет, мы можем выбрать его моделирование различными способами. Мы могли бы произвольно использовать обобщение или композицию во многих случаях. Тем не менее, принцип GoF «отдавай предпочтение композиции обобщению [sic]» побуждает нас использовать...
Быстрый поиск этого стека обмена показывает, что в целом состав обычно считается более гибким, чем наследование, но, как всегда, это зависит от проекта и т. Д., И бывают случаи, когда наследование является лучшим выбором. Я хочу создать трехмерную шахматную игру, в которой каждая фигура имеет...