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

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

10
Чи слід уникати спеціальних об'єктів як параметрів?
Припустимо, у мене є власний об'єкт, студент : public class Student{ public int _id; public String name; public int age; public float score; } І клас Window , який використовується для показу інформації студента : public class Window{ public void showInfo(Student student); } Це виглядає цілком нормально, але я виявив, …

9
Пояснення про те, як “Скажи, не питай” вважається хорошим ОО
Цей допис для блогу був розміщений на Hacker News з кількома оновленнями. Походить із С ++, більшість із цих прикладів, здається, суперечать тому, чого я вчив. Такі як приклад №2: Погано: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end проти хорошого: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature > …

8
LSP проти OCP / Liskov Заміна VS Open Close
Я намагаюся зрозуміти тверді принципи ООП і дійшов висновку, що LSP і OCP мають деякі подібності (якщо не сказати більше). принцип відкритого / закритого типу визначає, що "програмні об'єкти (класи, модулі, функції тощо) повинні бути відкритими для розширення, але закритими для модифікації". LSP простими словами зазначає, що будь-який примірник Fooможе …

3
Яка краща практика - хелперні методи як екземпляр чи статичний?
Це питання є суб'єктивним, але мені було просто цікаво, як більшість програмістів підходить до цього. Зразок нижче наведений у псевдо-C #, але це має стосуватися також Java, C ++ та інших мов OOP. У будь-якому разі, коли пишу хелперні методи на своїх заняттях, я схильний оголошувати їх статичними і просто …

3
Які переваги прототипу на основі прототипу перед OOP на основі класів?
Коли я вперше розпочав програмування Javascript після того, як в першу чергу мав справу з OOP в контексті мов на основі класу, я збентежився, чому OOP, заснований на прототипі, коли-небудь віддасть перевагу OOP на основі класів. Які структурні переваги використання OOP на основі прототипів, якщо такі є? (наприклад, чи будемо …

2
Що мав на увазі Алан Кей під „завданням” у „Ранній історії малих розмов”?
Я читав "Ранню історію Малого розмови", і є кілька згадок про "завдання", які змушують мене поставити під сумнів своє розуміння його значення: Хоча ООП виходив із багатьох мотивів, два були центральними. Великий масштаб полягав у тому, щоб знайти кращу модульну схему для складних систем, що передбачає приховування деталей, а маленький …

3
Чому модель анемічного домену вважається поганою в C # / OOP, але дуже важливою для F # / FP?
У публікації блогу на F # для розваги та прибутку написано: У функціональному дизайні дуже важливо відокремити поведінку від даних. Типи даних прості та "німі". А потім окремо у вас є ряд функцій, які діють на ці типи даних. Це якраз протилежність об'єктно-орієнтованому дизайну, де маються на увазі поєднання поведінки …

5
чи слід кидати виняток з конструктора?
Я знаю, що можу викинути виключення з конструктора в PHP, але чи варто це робити? Наприклад, якщо значення параметра не таке, як я очікував. Або я повинен відкладати викидання виключення, поки метод не буде викликаний. Які переваги та недоліки в обох випадках?

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

8
Що слід дозволити всередині геттерів та сетерів?
Я потрапив у цікавий інтернет-аргумент про геттер та сетер методи та інкапсуляцію. Хтось сказав, що все, що вони повинні зробити, - це завдання (setters) або змінний доступ (getters), щоб зберегти їх "чистими" та забезпечити інкапсуляцію. Я маю рацію, що це повністю переможе мету, щоб передусім отримати геттерів та сеттерів, а …

8
До ООП члени структури даних залишалися загальнодоступними?
Коли структура даних (наприклад, черга) реалізована за допомогою мови OOP, деякі члени структури даних повинні бути приватними (наприклад, кількість елементів у черзі). Черга також може бути реалізована процедурною мовою, використовуючи a structі набір функцій, які працюють на struct. Однак, процедурною мовою ви не можете зробити членів structприватними. Чи члени структури …

3
Яка різниця між підкласом і підтипом?
Відповідь на це запитання щодо принципу заміни Ліскова має найвищі оцінки для розмежування термінів підтип та підклас . Це також вказує на те, що деякі мови поєднують ці дві, тоді як інші - ні. Для об'єктно-орієнтованих мов, які мені найбільше знайомі (Python, C ++), "type" і "class" є синонімічними поняттями. …

11
Чи є змінні помилки антидіаграмою чи хорошим дизайном?
Щоб обробити кілька можливих помилок, які не повинні зупиняти виконання, у мене є errorзмінна, яку клієнти можуть перевіряти та використовувати для викидання винятків. Це анти-шаблон? Чи є кращий спосіб впоратися з цим? Для прикладу цього в дії ви можете побачити API mysqli PHP . Припустимо, що з проблемами видимості (доступними, …


1
Чому програмісти використовують `Acme` в якості пакету, простору імен або імені каталогу [закрито]
Це може бути, а може і не бути дурним питанням, але я дуже хотів би дізнатися відповідь на щось, що мене турбує якийсь час. Я досить часто бачу приклади / конвенції програмування, де програміст створив каталог, який називається acmeдля розміщення матеріалів. Що Acmeозначає? Чому Акме, а не Емка чи інше? …

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