Запитання з тегом «coupling»

9
Я змінив один метод підпису і тепер маю понад 25 000 помилок. Що тепер?
Нещодавно я розпочав нову роботу, де працюю над дуже великим додатком (локація 15М). У моїй попередній роботі у нас був аналогічно великий додаток, але (на краще або на гірше) ми використовували OSGi, що означало, що програма розбита на безліч мікросервісів, які можна було самостійно змінювати, компілювати та розгортати. Новий додаток …

11
Як я можу уникати каскадних рефактори?
У мене є проект. У цьому проекті я хотів переробити його, щоб додати функцію, і я відновив проект, щоб додати функцію. Проблема полягає в тому, що коли я закінчив, виявилося, що мені потрібно внести незначну зміну інтерфейсу, щоб його вмістити. Тож я змінив. І тоді споживчий клас не може бути …

6
Чому погана зв'язок між функціями та даними погана?
Цю цитату я знайшов у « Радості Клоджура » на с. 32, але хтось сказав те ж саме мені під час вечері минулого тижня, і я чув це також і в інших місцях: Недоліком об'єктно-орієнтованого програмування є тісний зв'язок між функцією та даними. Я розумію, чому непотрібна зв'язок погана в …

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

3
Як ін'єкційна залежність збільшує зв'язок?
На сторінці Вікіпедії про введення залежності, в розділі про недоліки йдеться про це: Введення залежності збільшує зв'язок, вимагаючи від користувача підсистеми забезпечити потреби цієї підсистеми. із посиланням на статтю проти введення залежності . Ін'єкційна залежність змушує клас використовувати інтерфейс замість конкретної реалізації. Це повинно призвести до зменшення зв'язку , ні? …

3
Як правильно від'єднати інтерфейс користувача від логіки на додатках Pyqt / Qt?
Я досить багато читав про цю тему в минулому і спостерігав цікаві розмови, як цей від дядька Боба . Тим не менш, мені завжди важко правильно архітектувати свої настільні програми та розрізняти, які повинні бути обов'язки на стороні інтерфейсу, а які - з логічної сторони. Це дуже короткий підсумок передового …
20 design  python  mvc  gui  coupling 

5
Чому тип поєднується зі своїм конструктором?
Нещодавно я видалив мою відповідь Java на Code Review , яка почалася так: private Person(PersonBuilder builder) { Стій. Червоний прапор. PersonBuilder побудував би Person; це знає про Особу. Клас Person нічого не повинен знати про PersonBuilder - це просто незмінний тип. Ви створили тут кругле з'єднання, де A залежить від …

4
Програмування на основі подій: коли воно того варто?
Гаразд, я знаю, що заголовок цього питання майже ідентичний " Коли я повинен використовувати програмування на основі подій?" але відповіді на вказане питання не допомогли мені вирішити, чи слід використовувати події в конкретному випадку, з яким я стикаюся. Я розробляю невеликий додаток. Це простий додаток, і здебільшого його функціональність - …

3
Чи відокремлює козир ДУХУВАННЯ в REST?
Я будую API REST, щоб відкрити більшість функціональних можливостей існуючого Java API. Обидва API призначені для внутрішнього використання в моїй організації; Мені не доводиться проектувати для зовнішнього використання. Я маю вплив на обидва API, але я реалізую REST. API API і надалі буде використовуватися для локальних додатків (він не "звільнений"), …
19 java  api  rest  coupling  dry 

8
Чи поєднання з рядками "втрачає", ніж із класовими методами?
Я починаю проект шкільної групи на Java, використовуючи Swing. Це просто графічний графічний інтерфейс на настільному додатку Database. Професор подав нам код минулорічного проекту, щоб ми могли побачити, як він робить справи. Моє початкове враження полягає в тому, що код набагато складніший, ніж повинен був бути, але я думаю, що …
18 java  coupling 

6
Вільна муфта в об'єктно-орієнтованому дизайні
Я намагаюся навчитися GRASP, і я виявив, що це пояснено ( тут, на сторінці 3 ) про низьке з'єднання, і я був дуже здивований, коли виявив це: Розглянемо метод addTrackдля Albumкласу, два можливі методи: addTrack( Track t ) і addTrack( int no, String title, double duration ) Який метод зменшує …

3
Блок тестування поведінки без з'єднання з деталями реалізації
У своїй розмові TDD, куди це все пішло не так , Іен Купер підштовхує оригінальний намір Кента Бека за тестуванням одиниці в TDD (для тестування поведінки, а не методів занять конкретно) та заперечує за те, щоб уникнути прив'язки тестів до впровадження. У випадку поведінки на зразок save X to some …

5
Чи можна застосовувати DRY без збільшення зчеплення?
Припустимо, у нас є програмний модуль A, який реалізує функцію F. Інший модуль B реалізує ту ж функцію, що і F '. Існує кілька способів позбутися від дублюючого коду: Нехай A використовує F 'від B. Нехай B використовує F від A. Помістіть F у власний модуль C і дозвольте їм …

3
Кодове з'єднання вводиться DRY та OOD
Я шукаю вказівки щодо сполучення DRY проти коду. Мені не подобається дублювати код, і мені також не подобається з'єднання коду між непов'язаними модулями. Тож я рефактор дублюючого коду, якщо виявляю ідентичний дублікат коду через рік після введення дублювання. Однак у мене все частіше виникають ситуації, коли реальний світ набагато непередбачуваніший, …
14 design  dry  coupling 

5
Як використовувати ін'єкцію залежності та уникнути тимчасової зв’язки?
Припустимо, у мене є те, Serviceщо отримує залежності через конструктор, але його потрібно ініціалізувати спеціальними даними (контекстом), перш ніж вони можуть бути використані: public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private …

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