Запитання з тегом «object-oriented»

Методологія, яка дозволяє моделювати систему як сукупність об'єктів, якими можна модульно керувати та керувати ними

2
Чи монади є життєздатною (можливо, кращою) альтернативою ієрархіям спадкування?
Я буду використовувати мовно-агностичний опис монад на кшталт цього, спочатку опишу моноїди: Моноїд це (приблизно) набір функцій , які приймають певний тип в якості параметра і повертають один і той же тип. Монада є (приблизно) набір функцій , які приймають обгортки типу в якості параметра і повертає один і той …

11
Коли ви хочете дві посилання на один і той же об’єкт?
В Java конкретно, але, ймовірно, і в інших мовах: коли було б корисно мати два посилання на один і той же об’єкт? Приклад: Dog a = new Dog(); Dob b = a; Чи є ситуація, коли це було б корисно? Чому це було б кращим рішенням для використання, aколи ви …

4
Порожній інтерфейс для об'єднання декількох інтерфейсів
Припустимо, у вас є два інтерфейси: interface Readable { public void read(); } interface Writable { public void write(); } У деяких випадках об'єкти, що реалізують, можуть підтримувати лише один із них, але у багатьох випадках реалізація підтримує обидва інтерфейси. Люди, які використовують інтерфейси, повинні зробити щось на кшталт: // …

5
Чи орієнтований об'єкт архітектури компонентної системи об'єднання за визначенням?
Чи орієнтований об'єкт архітектури компонентної системи за визначенням? Мені це здається більш процедурним чи функціональним. На мою думку, це не заважає вам впроваджувати його на мові ОО, але не було б ідіоматичним робити це непохитним способом ОО. Схоже, ECS відокремлює дані (E&C) від поведінки (S). Як доказ : Ідея полягає …

5
Чому сучасні бібліотеки не використовують OOP
Я програміст на рівні початківців C ++, але поняття мови я досить добре розумію. Коли я почав вивчати зовнішні бібліотеки C ++, як-от SDL, OpenGL (можливо, ще щось), на моє велике здивування я виявив, що вони взагалі не використовують поняття C ++. Наприклад, ні SDL, ні OpenGL не використовують класи …

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

11
Чи приховується інформація більше, ніж умова?
У Java, C # та багатьох інших сильно типізованих статично перевірених мовах ми звикли писати такий код: public void m1() { ... } protected void m2() { ... } private void m2() { ... } void m2() { ... } Деякі динамічно перевірені мови не містять ключових слів, щоб виразити …

11
чи OOP є домінуючою моделлю програмування в реальному світі?
Об'єкти ніколи? Ну, навряд чи колись У розділі VIEWPOINT Комунікації ACM я знайшов цікаву статтю під назвою " Об'єкти ніколи? Ну, навряд чи колись ". Це кардинально інша перспектива, ніж об'єкти - спочатку або об'єкти - пізно. Він пропонує «об’єкти-ніколи» чи, можливо, «предмети-аспірантура». Автор розповів про OOP і поставив питання …

9
Чи запах кодів init ()?
Чи є якась мета для оголошення init()способу для типу? Я не запитую, чи слід віддавати перевагу init()конструктору чи як уникнути декларуванняinit() . Я питаю, чи є якесь - або Обгрунтування оголошуючи init()метод (бачачи , наскільки часто це) , або , якщо це код запах і його слід уникати. init()Ідіоми досить …

7
Різниця між шаблоном і принципом
Яка різниця між об'єктно-орієнтованими моделями дизайну та принципами? Вони різні речі? Наскільки я зрозумів, вони обидва намагаються досягти якоїсь спільної мети (наприклад, гнучкість). Тож чи можу я сказати, що модель є принципом і навпаки? Принцип проектування = твердий (тобто принцип інверсії залежності) Шаблон дизайну = Gof (тобто абстрактний заводський візерунок)

3
Наскільки неправильно говорити про "методи" C ++ (проти "членських функцій")?
Я розумію, що згідно зі специфікацією C ++ не існує такого поняття, як "метод", і деякі (багато? Більшість?) Програмісти C ++ вважають "метод" Java-ізмом. З іншого боку, навіть на форумі C ++ люди, здається, говорять про методи, не посмикуючись. Я шукаю відомі конвенції або поширені практики щодо цієї термінології. Я …

4
Як занадто багато змінних примірників призводить до дублювання коду?
Відповідно до Refactoring to Patterns : Коли клас намагається зробити занадто багато, він часто виявляється як занадто багато змінних екземплярів. Коли у класу занадто багато змінних примірників, дублюваний код не може відстати. Як занадто багато змінних примірників призводить до дублювання коду?

3
Як посилення передумов і ослаблення посткондукцій порушує принцип заміни Ліскова?
Я читав, що принцип заміни Ліскова порушується, якщо: Передумови посилюються, або Послідовності ослаблені Але я ще не розумію, як ці два пункти порушили б принцип заміни Ліскова. Може хтось, будь-ласка, поясніть на прикладі. Зокрема, як будь-яка з перерахованих вище умов спричинить ситуацію, коли об'єкт підкласу не може бути замінений об’єктом …

3
Відмінності між "Java OOP" та "Pythonic OOP"? [зачинено]
Наразі це питання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

4
Зробіть методи, які не залежать від полів екземпляра, статичними?
Нещодавно я розпочав програмування в Groovy для рамки тестування інтеграції, для проекту Java. Я використовую Intellij IDEA з плагіном Groovy, і я здивований, коли бачу попередження для всіх методів, які не є статичними і не залежать від будь-яких полів примірника. Однак у Java це не проблема (принаймні, з точки зору …

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