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

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

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

3
Чи існує схема дизайну для управління глибокими відносинами між багатьма?
У мене виникають проблеми з визначенням цього шаблону даних, я натрапив на роботу над декількома додатками. Він складається з: Тип об'єкта, який складається з багатьох самих об'єктів Другий тип об'єкта, де кожен екземпляр "має багато" першого об'єкта І кожен з під-об'єктів першого об'єкта може змінюватися в кожному об'єднанні до другого …

1
Коли я повинен підкласировать виняток у Python?
У моєму коді є близько семи місць, де я піднімаю виняток. Усі ці винятки трактуються однаково: надрукуйте помилку в журналі, поверніть стан програмного забезпечення за замовчуванням та вийдіть. Під час огляду коду мій старший інженер, якого я дуже ціную, сказав, що я повинен підкласифікувати всі ці винятки. Його аргумент полягає …

3
Чистий код та гібридні об’єкти та особливість заздрості
Тому я нещодавно зробив деякі основні рефактори для свого коду. Однією з головних речей, які я намагався зробити, було розподіл моїх класів на об'єкти даних та робочі об'єкти. На це, серед іншого, надихнув цей розділ чистого коду : Гібриди Ця плутанина іноді призводить до нещасних гібридних структур даних, які є …

2
Коли слідкуйте за SRP, як я маю поводитися з підтвердженням та збереженням об'єктів?
Останнім часом я читав чистий код та різні статті в Інтернеті про SOLID, і чим більше я читаю про нього, тим більше відчуваю, що нічого не знаю. Скажімо, я будую веб-додаток за допомогою ASP.NET MVC 3. Скажімо, у мене є UsersControllerтака Createдія: public class UsersController : Controller { public ActionResult …

3
Довгий список параметрів проти списку змінних довгого стану
У книзі C ++ автор каже, що нам більше не потрібна функція з довгим списком параметрів, оскільки більшість параметрів можуть бути перетворені на змінні стану класу. З іншого боку, книга з функціональним програмуванням говорить, що змінні стану є злими, оскільки вони спричиняють побічні ефекти, які спричиняють помилки та важко паралелізувати …

5
Це порушення відкритого закритого принципу для оновлення константи, що представляє цінність у реальному світі?
У мене клас обчислення чистого річного доходу працівників. Він має константу, що представляє відсоток податку. Але одного дня ставка податку змінилася, тому мені потрібно виправити код. Чи вказує акт фіксації цієї константи про порушення принципу відкритого закриття, оскільки він постулює, що клас повинен бути закритий для модифікації?

3
Як переробляти додаток із кількома випадками комутації?
У мене є додаток, який приймає ціле число як вхідне і базується на статичних методах введення викликів різних класів. Кожного разу, коли додається нове число, нам потрібно додавати інший випадок і викликати інший статичний метод іншого класу. Зараз в комутаторі 50 випадків, і кожен раз, коли мені потрібно додати ще …

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

5
Занадто велика кількість абстракцій робить код важко розширити
У мене виникають проблеми з тим, що я відчуваю, що це занадто велика абстракція в кодовій базі (або принаймні справу з цим). Більшість методів у кодовій базі були абстраговані для того, щоб прийняти найвищий з батьків у кодовій базі даних, але дитина B цього батька має новий атрибут, який впливає …

4
Підхід DDD до основних операцій CRUD у складному доменно-орієнтованому застосуванні
Моя компанія переписує нашу веб-програму з нуля. Це велика програма на рівні підприємств зі складною областю у фінансовій галузі. Ми використовуємо ORM (Entity Framework) для збереження. По суті, половина наших додатків зосереджується на зборі необроблених даних від користувача, зберіганні їх, а потім інша половина програми, яка містить більшість фактичної логіки …

1
Логіка бізнесу та рівень обслуговування
Я читаю цю відповідь: https://softwareengineering.stackexchange.com/a/234254/173318, будь ласка, виправте своє розуміння. Правила бізнесу посилаються на перелік кроків бізнесу в реальному світі (без кодів). Бізнес-логіка позначає процес перетворення ділових правил у коди, а ці купи / різновиди кодів адресовані як "Бізнес-логіка". А для чого використовується рівень обслуговування? якщо я прочитаю цю відповідь, …

2
Що робить ітератор схемою дизайну?
Мені було цікаво, що саме те, що робить Ітератор особливим у порівнянні з іншими подібними конструкціями, і що змусило Банку чотирьох перерахувати його як модель дизайну. Ітератор заснований на поліморфізмі (ієрархії колекцій із загальним інтерфейсом) та розділенні проблем (повторення над колекціями має бути незалежним від способу структурування даних). Але що …

4
Як чітко визначити межі обмеженого контексту
Після місяця чи близько місяця читання та дослідження DDD я вирішив розпочати власний проект і створив DDD із цими обмеженими контекстами> Клієнти Продукція Замовлення Рахунки Кожен обмежений контекст містить API відпочинку як презентаційний шар, доменний рівень, стійкий шар. Поки добре, код працює безперебійно, але виходячи з монолітного світу, я все …

1
Коли використовувати риси, на відміну від успадкування та складу?
Існує три поширених способи - AFAIK - реалізувати повторне використання, коли мова йде про OOP Спадщина: зазвичай представляти є - відносини (качка - птах) Склад: зазвичай представляють стосунки (автомобіль має двигун) Риси (наприклад, ключове слово trait у PHP): ... не дуже впевнений у цьому Хоча мені здається, що риси можуть …

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