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

143
Откуда взялась эта концепция «отдавать предпочтение композиции перед наследованием»?

В последние несколько месяцев, мантра «композиция благосклонности вместо наследования», кажется, возникла из ниоткуда и стала почти своего рода мемом в сообществе программистов. И каждый раз, когда я вижу это, я немного озадачен. Это как кто-то сказал: «Скорее тренируйся, чем молотки». По моему...

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

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

36
Как определить, что метод может быть переопределен более сильным обязательством, чем определение, что метод может быть вызван?

От: http://www.artima.com/lejava/articles/designprinciples4.html Эрих Гамма: Я все еще думаю, что это правда, даже после десяти лет. Наследование - это крутой способ изменить поведение. Но мы знаем, что это хрупко, потому что подкласс может легко делать предположения о контексте, в котором...

36
Является ли «композиция над наследством» нарушением «сухого принципа»?

Например, предположим, у меня есть класс для расширения других классов: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } и некоторые подклассы: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { }...

35
Что означает «не сочинять»?

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

13
Должен ли разработчик знать внутреннюю работу компьютерного оборудования? [закрыто]

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

13
Является ли инъекция зависимости вручную лучшей альтернативой композиции и полиморфизму?

Во-первых, я программист начального уровня; На самом деле, я заканчиваю степень AS с финальным замковым проектом в течение лета. На моей новой работе, когда у меня нет какого-то проекта (они ждут, чтобы заполнить команду новыми сотрудниками), мне дали книги для чтения и обучения, пока я жду - одни...

13
Как избежать написания множества сквозных функций в оболочке?

У меня есть класс, который оборачивает другой класс общего базового типа. Поскольку интерфейс базового типа довольно большой, это требует написания множества сквозных функций. Я ищу способ избежать этого. Давайте сделаем пример: Car / \ Volvo VolvoWithTrailer Теперь мне нужно реализовать каждую...

13
Композиция по наследству, но

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

13
«Предпочитаю композицию наследованию» - единственная причина защищаться от изменений подписи?

Эта страница поддерживает композицию перед наследованием со следующим аргументом (перефразировав его в моих словах): Изменение в сигнатуре метода суперкласса (который не был переопределен в подклассе) во многих случаях вызывает дополнительные изменения, когда мы используем наследование. Однако,...

12
Когда Роб Пайк говорит «Go - это композиция», что именно он имеет в виду? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . От меньшего - экспоненциально больше Если в C ++ и Java речь идет об...

11
Должен ли я предпочесть композицию или наследование в этом сценарии?

Рассмотрим интерфейс: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Этот интерфейс реализован рядом классов, которые генерируют волны различной формы (например, SineWaveGeneratorи SquareWaveGenerator). Я хочу реализовать класс, который генерирует...

11
Сокращение шаблонов в классе, который реализует интерфейсы посредством композиции

У меня есть класс: Aэто состав из нескольких меньших классов B, Cи D. B, CИ Dреализовывать интерфейсы IB, ICи IDсоответственно. Так как Aподдерживает все функциональные возможности B, Cи D, Aреализует IB, ICи IDтакже, но это, к сожалению, приводит к большой перенаправления в реализацииA Вот так:...

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

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

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

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

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

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