Запитання з тегом «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
"Віддавайте перевагу складу над спадщиною" - Є єдиною причиною захисту від змін підпису?
Ця сторінка виступає за склад над успадкуванням наступним аргументом (перефразовуючи це моїми словами): Зміна підпису методу надкласу (який не був переосмислений у підкласі) спричиняє додаткові зміни у багатьох місцях, коли ми використовуємо Inheritance. Однак, коли ми використовуємо Composition, необхідна додаткова зміна є лише в одному місці: Підклас. Це насправді єдина …

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

9
Чи повинен розробник знати внутрішню роботу апаратних засобів комп'ютерів? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Я говорю не лише про те, як призначається пам'ять та управління пам’яттю (наприклад, про …

3
Склад над спадщиною, але
Я намагаюся навчити себе інженерії програмного забезпечення і зустрічаюсь із суперечливою інформацією, яка мене бентежить. Я вивчав OOP, що таке абстрактні класи / інтерфейси та як ними користуватися, але потім я читаю, що слід «надавати перевагу композиції над успадкуванням». Я розумію склад - це коли один клас створює / створює …

4
Чи є ін'єкція залежності від руки кращою альтернативою складу та поліморфізму?
По-перше, я програміст початкового рівня; Насправді я закінчую ступінь AS на кінцевому проекті, що завершується літом. На моїй новій роботі, коли для мене не існує якогось проекту (вони чекають, щоб заповнити команду ще новими наймами), мені дали книги читати і вчитися, поки я чекаю - деякі підручники, інші не так …

2
Коли Роб Пайк каже "Іди про композицію", що саме він має на увазі? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 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 {get;} } public class …

1
Чи існує ситуація, коли краще використовувати слабкі посилання замість простого складу?
Хоча документи Java вказують, що слабкі посилання в основному стосуються канонізації відображень, в Інтернеті ви знайдете багатьох , багатьох , багатьох людей, які стверджують, що WeakHashMap ідеально підходить для зберігання метаданих об’єктів протягом свого життя. Однак ніхто не заважає зробити зрозумілий І відповідний приклад. Використання WeakHashMap для додавання об'єкту якихось …

9
Спадщина проти композиції для шахових фігур
Швидкий пошук цієї ставки обміну показує, що загалом склад вважається більш гнучким, ніж спадкування, але, як завжди, це залежить від проекту тощо. І є випадки, коли успадкування є кращим вибором. Я хочу зробити 3D-шахову гру, де кожен твір має сітку, можливо, різні анімації тощо. У цьому конкретному прикладі здається, що …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.