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

Об'єктно-орієнтоване проектування - це процес планування системи взаємодіючих об’єктів з метою вирішення програмної проблеми.

4
Практичні обмеження розміру хешбела та словника в c #
Які практичні обмеження для кількості елементів, які може містити Словник C # 4 або Hashtable, і загальна кількість байтів, які ці структури можуть містити. Я буду працювати з великою кількістю об'єктів і хочу знати, коли у цих структур починають виникати проблеми. Для контексту я буду використовувати 64-бітну систему з тоннами …

5
Підводні камені дизайну, керованого доменом з Entity Framework
Багато навчальних посібників з DDD, який я вивчав, здебільшого охоплюють теорію. Всі вони мають рудиментарні приклади коду (Pluralsight та подібні). В Інтернеті також є спроби кількох людей створити навчальні посібники, що охоплюють DDD за допомогою EF. Якщо ви почнете їх вивчати лише коротко - ви швидко помітите, що вони сильно …

2
Класи Python лише з одним екземпляром: Коли створити (єдиний) екземпляр класу і коли замість цього працювати з класом?
Дано клас Python, який буде інстанціюватися лише один раз, тобто буде лише один об'єкт класу. Мені було цікаво, в яких випадках має сенс створити один екземпляр класу, а не працювати безпосередньо з класом. Існує подібне питання , але воно має іншу спрямованість: йдеться про групування глобальних змінних та функцій у …

5
Чи слід віддавати перевагу складу чи спадку у цьому сценарії?
Розглянемо інтерфейс: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Цей інтерфейс реалізований низкою класів, які генерують хвилі різної форми (наприклад, SineWaveGeneratorта SquareWaveGenerator). Я хочу реалізувати клас, який формує на SoundWaveоснові музичних даних, а не необроблених звукових даних. Він отримав би назву ноти та довжину у перерахунку на удари …

3
Чи є кращою практикою попередньо ініціалізувати атрибути в класі чи додавати їх по дорозі?
Вибачте, якщо це АБСОЛЮТНО-софістичне питання, але мені цікаво, які найкращі практики є там, і я не можу знайти хорошу відповідь у Google. У Python я зазвичай використовую порожній клас як контейнер структури суперкачальних даних (на зразок файлу JSON) і додаю атрибути попутно: class DataObj: "Catch-all data object" def __init__(self): pass …

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

4
Дизайн на «змішаних» мовах: об’єктно-орієнтований дизайн або функціональне програмування?
В останні кілька років мови, які я люблю використовувати, стають все більш "функціональними". Зараз я використовую мови, які є свого роду "гібридом": C #, F #, Scala. Мені подобається розробляти свої програми за допомогою класів, які відповідають об’єктам домену, і використовую функціональні функції, де це робить кодування простішим, зручнішим та …

9
SOLID проти статичних методів
Ось проблема, з якою я часто стикаюся: Нехай буде проект веб-магазину, який має клас продукту. Я хочу додати функцію, яка дозволяє користувачам розміщувати відгуки на продукт. Тож у мене є клас Огляд, який посилається на товар. Тепер мені потрібен метод, в якому перераховані всі відгуки до товару. Є дві можливості: …

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

10
У чому сенс властивостей?
Ось декілька аргументів щодо властивостей та моїх аргументів: Простіший у використанні, ніж написання геттерних та сетер-методів Пари методів Геттера та сеттера - це кодовий запах. Зробити їх легше писати - це полегшити пропуск тесту з математики, використовуючи форму Scantron і заповнивши всі "C". Об'єкти, що містять лише стан, для збереження …

2
Пізнє зв’язування, орієнтоване на об'єкти
У визначенні Alan Kays Орієнтоване на об'єкт є таке визначення, яке частково я не розумію: OOP для мене означає лише обмін повідомленнями, локальне збереження та захист та приховування державно-процесу та екстремальне пізнє зв’язування всіх речей. Але що означає "пізній зв'язок"? Як я можу застосувати це на такій мові, як C …

4
Шаблон копіювання класу?
Зараз я працюю соло розробником свого поточного проекту. Я успадкував проект від іншого розробника, який відтоді покинув компанію. Це веб-додаток із стилем перегляду моделей у C #. Він використовує Entity Framework для реляційного відображення об'єктів. І існує два різних набори класів для типів у доменній моделі. Один набір використовується для …

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

4
Що таке "передчасна абстракція"?
Я чув, як фразу кидають навколо, і мені аргументи звучать абсолютно божевільно (вибачте, якщо я тут нахабний, це не мій намір), як правило, це іде щось за принципом: Ви не хочете створювати абстракцію, перш ніж дізнаєтесь, що таке загальний випадок, інакше (1) ви можете помістити речі у свої абстракції, які …

2
Чи є елегантний спосіб перевірити унікальні протипоказання на атрибути об’єкта домену без переміщення бізнес-логіки в рівень обслуговування?
Я адаптував дизайн, орієнтований на домен, вже близько 8 років, і навіть після всіх цих років є ще одне, що мене клопоче. Це перевірка наявності унікального запису у сховищі даних щодо об’єкта домену. У вересні 2013 року Мартін Фаулер згадав про принцип TellDon'tAsk , який, якщо можливо, слід застосувати до …

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