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

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

6
Чи можете ви реалізувати “об’єктно-орієнтоване” програмування без ключового слова класу?
Скажімо, ми хочемо забезпечити абстракцію "рахунку" в банку. Ось один підхід із використанням functionоб’єкта в Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: …

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

7
Яка різниця між "приховуванням даних" та "капсуляцією"?
Я читаю "Паралельність Java на практиці", і там сказано: "На щастя, ті самі об'єктно-орієнтовані методи, які допомагають писати добре організовані, ремонтовані класи - такі, як інкапсуляція та приховування даних, - також можуть допомогти вам створити безпечний потік" заняття ». Проблема №1 - я ніколи не чув про приховування даних і …

12
Чому клас повинен бути чимось іншим, як "абстрактним" або "остаточним / запечатаним"?
Після 10+ років програмування java / c # я можу створити: абстрактні класи : контракт, який не повинен бути поміркований таким, який є. заключні / запечатані класи : реалізація не повинна служити базовим класом для чогось іншого. Я не можу придумати жодної ситуації, коли простий "клас" (тобто ні абстрактний, ні …

12
Наскільки велика норма для класу?
Я давно розробник (мені 49), але досить новий в об'єктно-орієнтованому розвитку. Я читав про ОО ще з Ейфеля Бертрана Мейєра, але дуже мало програмував ОО. Справа в тому, що кожна книга з дизайну ОО починається з прикладу човна, машини чи будь-якого спільного предмета, який ми використовуємо дуже часто, і вони …

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

6
Чи є вивчення функціональної мови кращим програмістом OOP? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Як програміст Java / C # / C ++ я чую багато розмов про …

6
Які застереження щодо реалізації фундаментальних типів (наприклад, int) як класів?
При проектуванні і implenting об'єктно-орієнтована мова програмування, в якій - то момент один повинен зробити вибір про реалізацію основних типів (як int, float, doubleабо їх еквіваленти) , як класи або що - то інше. Зрозуміло, що мови в сім'ї С мають тенденцію не визначати їх як класи (Java має спеціальні …

7
Чи ігнорує функціональне програмування переваги, отримані від "Про критерії, що використовуються в декомпозиції систем на модулі" (приховування даних)?
Існує класична стаття під назвою "Критерії, які потрібно використовувати в розкладанні систем на модулі", яку я тільки що прочитав вперше. Для мене це має сенс, і, мабуть, одна з тих статей, на яких базувався ООП. Її висновок: Ми намагалися продемонструвати на цих прикладах, що майже завжди неправильно починати розкладку системи …

9
Що може піти не так, якщо порушено принцип заміни Ліскова?
Я слідкував за цим високоголосним питанням щодо можливого порушення принципу заміни Ліскова. Я знаю, що таке принцип заміни Ліскова, але все ще не ясно в моєму розумінні, що може піти не так, якщо я як розробник не замислююся над принципом під час написання об'єктно-орієнтованого коду.

12
SOLID vs. Уникнення передчасної абстракції
Я розумію, що SOLID повинен виконувати і використовувати його регулярно в ситуаціях, коли модульність важлива і цілі її явно корисні. Однак дві речі заважають мені послідовно застосовувати його в моїй кодовій базі: Хочу уникнути передчасного абстрагування. З мого досвіду, малювання абстракційних ліній без конкретних випадків використання (таких, які існують зараз …

14
Як управляються великими базами коду, що не є OO?
Я завжди бачу, що абстракція є дуже корисною функцією, яку забезпечує ОО для управління базою кодів. Але як керуються великими базами коду, що не є ООС? Або з часом вони просто стають " Великим балом грязі "? Оновлення: Здавалося, всі думають, що "абстракція" - це просто модуляція чи приховування даних. …

8
Чи є ароматизатори OOP, де деякі або всі принципи SOLID є антитетичними для чистого коду?
Нещодавно я обговорив з моїм другом про OOP у розробці відеоігор. Я пояснював архітектуру однієї з моїх ігор, яка, на подив мого друга, містила багато невеликих класів та кілька шарів абстракції. Я стверджував, що це був результат, коли я зосередився на наданні всього єдиної відповідальності, а також на послаблення зв'язку …

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

5
Як переробити програму OO у функціональну?
Мені важко знайти ресурси про те, як писати програми у функціональному стилі. Найсучаснішою темою, про яку я міг знайти обговорення в Інтернеті, було використання структурного набору тексту для скорочення ієрархій класів; більшість просто розбирається з тим, як використовувати карту / складку / зменшення / тощо для заміни імперативних циклів. Мені …

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