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

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

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

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

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

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

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

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

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

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

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

2
Когда Роб Пайк говорит «Go - это композиция», что именно он имеет в виду? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . От меньшего - экспоненциально больше Если в C ++ и Java речь идет …

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

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

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

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

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