Запитання з тегом «polymorphism»

4
Замінити умовне поліморфізмом належним чином?
Розглянемо два класи Dogі Catобидва, що відповідають Animalпротоколу (з точки зору мови програмування Swift. Це буде інтерфейс у Java / C #). У нас є екран із змішаним списком собак та котів. Є Interactorклас, який керується логікою за кадром. Тепер ми хочемо подати користувачеві попередження про підтвердження, коли він хоче …

4
Заміна на приклад Java?
Тож я досить новачок у програмуванні в реальному світі (за межами академічних проектів) і натрапив на безліч дописів, у яких говориться, що використовувати instanceofце погано, щоб визначити, для якого класу конкретний об’єкт. Моя ситуація полягає в тому, що у мене є три класи, базовий клас продуктів, той, який розширює цей, …

4
Шаблон дизайну для поліморфної поведінки, дозволяючи розділити бібліотеку
Скажімо , у мене є ієрархія Itemкласів: Rectangle, Circle, Triangle. Я хочу вміти їх малювати, тому моя перша можливість - додати віртуальний Draw()метод до кожного: class Item { public: virtual ~Item(); virtual void Draw() =0; }; Однак я хочу розділити функцію малювання на окрему бібліотеку Draw, тоді як основна бібліотека …

3
Два компоненти, що пропонують однаковий функціонал, який вимагається різними залежностями
Я будую додаток у PHP, використовуючи Zend Framework 1 та Doctrine2 як шар ORM. Все йде добре. Тепер я помітив, що і ZF1, і Doctrine2 мають і керуються своєю реалізацією кешування. Я оцінив і те, і інше, але в кожного є свої плюси і мінуси, жоден з них не виділяється …

1
Неявні проти явних інтерфейсів
Я думаю, що я розумію фактичні обмеження поліморфізму під час компіляції та поліморфізму під час виконання. Але в чому полягають концептуальні відмінності між явними інтерфейсами (поліморфізм під час виконання. Тобто віртуальні функції та покажчики / посилання) та неявними інтерфейсами (поліморфізм компіляції, тобто шаблони) . Мої думки полягають у тому, що …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.