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

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

2
Чи відповідає схема ActiveRecord / заохочує принципи дизайну SOLID?
Мене цікавить, чи заохочує або відлякує використання принципів дизайну SOLID дизайн ActiveRecord, відомий з Ruby on Rails . Наприклад, мені здається, що об’єкти ActiveRecord містять як логіку домену, так і логіку стійкості, що є порушенням єдиної відповідальності.

10
Чи є якась причина використовувати класи "простих старих даних"?
У застарілому коді я час від часу бачу класи, які є не що інше, як обгортки для даних. щось на зразок: class Bottle { int height; int diameter; Cap capType; getters/setters, maybe a constructor } Моє розуміння ОО полягає в тому, що класи - це структури для даних та методи …

7
Повна незмінність та об'єктно-орієнтоване програмування
У більшості мов OOP об'єкти, як правило, змінюються з обмеженим набором винятків (наприклад, кортежі та рядки в python). У більшості функціональних мов дані незмінні. Як змінні, так і непорушні об'єкти приносять цілий список своїх переваг і недоліків. Є мови, які намагаються одружитися з обома поняттями, наприклад скала, де у вас …

3
Програмування твердих принципів
З часом я міг зрозуміти дві частини SOLID - "S" і "O". «О» - Я навчився принципу відкритого закритого типу за допомогою структури спадкування та стратегії. “S” - я засвоїв принцип єдиної відповідальності під час вивчення ORM (логіка стійкості забирається з об’єктів домену). Аналогічним чином, які найкращі регіони / завдання …

3
чи погана практика, що контролер викликає сховище замість служби?
чи погана практика, що контролер викликає сховище замість служби? щоб пояснити більше: Я розумію, що в хорошому дизайні контролери викликають сервіс і сервіс використовують сховище. але іноді в контролері я не маю / не потребую ніякої логіки, і мені просто потрібно взяти з db і передати його для перегляду. і …

9
Чи "уникнути проблеми йо-йо" є вагомою причиною, щоб дозволити "примітивну одержимість"?
Згідно Коли коли примітивна одержимість не є кодовим запахом? , Я повинен створити об'єкт ZipCode, щоб представляти поштовий індекс, а не об'єкт String. Однак, зі свого досвіду, я волію бачити public class Address{ public String zipCode; } замість public class Address{ public ZipCode zipCode; } тому що я думаю, що …

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

8
Яка реальна відповідальність класу?
Мені цікаво, чи законним є використання дієслів, заснованих на іменниках в ООП. Я зіткнувся з цією блискучою статтею , хоча я все ще не згоден з моментом, який вона висуває. Щоб пояснити проблему трохи більше, у статті зазначено, що FileWriterкласу не повинно бути, наприклад , але написання є дією, це …

10
Яка різниця між "випадком використання", "Історією користувача" та "Сценарієм використання"?
Чи є чітке, але просте та зрозуміле визначення різниці між "випадком використання", "Історією користувача" та "Сценарієм використання"? є досить багато пояснень, але зараз я не бачу жодного, який би пояснював відмінності в одному реченні чи двох ... (наприклад, http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComppare дуже довгий і важкий для отримання, повний дискусій)

6
Чи слід створювати клас, якщо моя функція є складною і має багато змінних?
Це питання є дещо мовно-агностичним, але не повністю, оскільки об'єктно-орієнтоване програмування (OOP) відрізняється, наприклад, Java , яка не має першокласних функцій, ніж це в Python . Іншими словами, я відчуваю себе менш винним у створенні непотрібних класів такою мовою, як Java, але я відчуваю, що може бути кращим способом у …

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

9
Чи потрібна нам реєстрація при виконанні TDD?
Виконуючи цикл Red, Green & Refactor, ми завжди повинні писати мінімальний код для проходження тесту. Це те, як мене вчили про TDD і про те, як майже всі книги описують процес. А як же лісозаготівля? Чесно кажучи, я рідко використовував журнал у програмі, якщо не відбулося щось справді складне, проте …

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

12
Документація в ООП повинна уникати вказівки, виконує чи «обчислювач» якісь обчислення?
Програма CS моєї школи уникає будь-якої згадки об'єктно-орієнтованого програмування, тому я читав самостійно читання, щоб доповнити його - конкретно, Об'єктно-орієнтована побудова програмного забезпечення Бертрана Мейєра. Мейєр неодноразово зазначає, що класи повинні приховувати якомога більше інформації про їх реалізацію, що має сенс. Зокрема, він неодноразово стверджує, що атрибути (тобто статичні, не …

4
Позначення діаграми класів UML: Відмінності між асоціацією, агрегацією та складом
Мене плутають деякі позначення діаграм класів UML. Досить впевнений, що я знаю, що означає Асоціація . Будь-яке відношення між примірниками двох класів, де екземпляр одного класу повинен знати про екземпляр другого класу, щоб виконувати свою роботу - це відношення асоціації. Асоціація часто означає, що клас A має посилання (поле) на …

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