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

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

1
Ми зловживаємо статичними методами?
Пару місяців тому я почав працювати над новим проектом, і, переглядаючи код, це вразило мене кількістю застосованих статичних методів. collectionToCsvString(Collection<E> elements)В них зберігаються не тільки корисні методи як , але і велика кількість бізнес-логіки. Коли я запитав хлопця, відповідального за обґрунтування цього, він сказав, що це спосіб врятуватися від свавілля …

2
Як організовуються «пам'ятки» та «класи» OOP в пам'яті з точки зору мови складання?
Як організовуються об'єкти в пам'яті? Наприклад, я знаю, що функція - це фрагмент коду в пам'яті, який очікує параметрів через стек та / або регістри та обробляє власний кадр стека. Але об’єкти - це набагато складніша структура. Як вони організовані? Чи кожен об'єкт має "посилання" на методи та передає адресу …

3
Навіщо тобі потрібно «я». в Python для позначення змінних екземплярів?
Я програмував на декілька мов, таких як Java, Ruby, Haskell і Python. Мені доводиться перемикатися між багатьма мовами на день через різні проекти, над якими я працюю. Тепер проблема полягає в тому, що я часто забуваю писати, selfяк перший параметр у визначеннях функції в Python те саме відбувається з методами …

3
Склад над спадщиною, але
Я намагаюся навчити себе інженерії програмного забезпечення і зустрічаюсь із суперечливою інформацією, яка мене бентежить. Я вивчав OOP, що таке абстрактні класи / інтерфейси та як ними користуватися, але потім я читаю, що слід «надавати перевагу композиції над успадкуванням». Я розумію склад - це коли один клас створює / створює …

8
Чи інтерфейс, що розкриває функцію асинхронізації, є хиткою абстракцією?
Я читаю книгу " Принципи, практики та схеми введення залежності", і читаю про концепцію непропускної абстракції, яка добре описана в книзі. Сьогодні я переробляю базу коду C #, використовуючи введення залежності, щоб виклики асинхронізації використовувались замість блокування. Таким чином я розглядаю деякі інтерфейси, які представляють абстракції в моїй кодовій базі …

2
У DDD чи доменна послуга є лише фасадом та / або посередницьким малюнком?
У дизайні, керованому доменом, у шарі домену можуть бути декілька (традиційних) послуг. Наприклад, для домену Користувача ми можемо мати: UserFactory, який будує об’єкти користувача різними способами UserRepository, який відповідає за взаємодію зі службами збереження в інфраструктурному шарі Чи є UserService в доменному шарі просто посередником та / або фасадом для …

5
На скільки функціональні дзвінки впливають на продуктивність?
Витяг функціональності в методи або функції є обов'язковим для модуля коду, читабельності та сумісності, особливо в OOP. Але це означає, що буде здійснено більше функцій дзвінків. Як розбиття нашого коду на методи чи функції насправді впливає на ефективність у сучасних * мовах? * Найпопулярніші з них: C, Java, C ++, …

6
DDD відповідає OOP: Як реалізувати об'єктно-орієнтований сховище?
Типова реалізація сховища DDD не виглядає дуже OO, наприклад save()метод: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Інфраструктурна частина: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo { private …

1
Використання друзів класів для інкапсуляції функцій приватних членів на C ++ - хороша практика чи зловживання?
Тому я помітив, що можна уникнути введення приватних функцій у заголовки, роблячи щось подібне: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever } …

4
структура з безглуздим значенням за замовчуванням
У моїй системі я часто працюю з кодами аеропортів ( "YYZ", "LAX", "SFO"і т.д.), вони завжди знаходяться в тому ж форматі (3 листи, представлений в верхньому регістрі). Зазвичай система займається 25-50 цими (різними) кодами на запит API, загалом - понад тисяча виділень, вони передаються через багато шарів нашої програми, і …

3
Що є загальним способом обробки видимості в бібліотеках?
Це питання про те, коли використовувати приватні та коли використовувати захищені в класах, змусило мене задуматися. (Я поширю це питання також на заключні класи та методи, оскільки це пов'язано. Я програмую на Java, але думаю, що це стосується кожної мови OOP) Прийнята відповідь говорить: Добре правило: зробити все максимально приватним. …


2
Яку користь має "Smalltalk": ":"?
become:Повідомлення в Smalltalk викликає один об'єкт зміни в інший, впливаючи на всі посилання на нього. Яке використання має ця мовна функція? Чи звикає він до реального коду? Це просто цікавість? Чи вважається хорошою / поганою практикою його використання?

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

6
Як уникнути зриву?
Моє запитання стосується особливого випадку тварини суперкласу. Моя Animalможе moveForward()і eat(). Sealрозширюється Animal. Dogрозширюється Animal. І є особлива істота, яка також розширюється, Animalназивається Human. Humanреалізує також метод speak()(не реалізований Animal). У реалізації абстрактного методу, який приймає, Animalя хотів би використати speak()метод. Це, здається, неможливо, не роблячи зриву. Джеремі Міллер написав …

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