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

Шаблон дизайну є загальним для багаторазового вирішення часто зустрічається проблеми в розробці програмного забезпечення.

8
Виконайте творчість шаблонів дизайну
Багато років тому я розмовляв з професором економіки про схеми дизайну, про те, як вони створювали загальну мову для програмістів і як вони красиво вирішували відомі проблеми тощо. Потім він сказав мені, що це якраз протилежний підхід, який він застосував би для своїх студентів з економічних питань. Зазвичай він представляв …

6
Карта функцій проти оператора switch
Я працюю над проектом, який обробляє запити, і до цього запиту є два компоненти: команда та параметри. Обробник для кожної команди дуже простий (<10 рядків, часто <5). Є щонайменше 20 команд, і, ймовірно, буде більше 50. Я придумав пару рішень: один великий перемикач / інше на команди карта команд до …

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

1
Шаблон дизайну для перетворення об'єктів (java)
Я не використовую шаблони дизайну дуже часто, окрім випадкових заводських та MVC, і я хочу почати використовувати їх більше. У мене є конкретний випадок, що я хотів би отримати вашу думку щодо використання моделей дизайну в даному випадку. У своїй програмі мені доводиться перетворювати об'єкти досить часто в різних ситуаціях. …

5
Як переконати мого шефа (та інших розробників) використовувати / вважати ненав’язливий JavaScript
Я досить нова в нашій команді девелепорсів. Мені потрібні кілька вагомих аргументів та / або прикладів «підводних підводів», тому мій начальник нарешті зрозуміє переваги ненав’язливого JavaScript, щоб він та інша команда перестали робити такі дії: <input type="button" class="bow-chicka-wow-wow" onclick="send_some_ajax(); return false;" value="click me..." /> і <script type="text/javascript"> function send_some_ajax() { …

3
Як я повинен реалізувати шаблон сховища для складних моделей об'єктів?
Це запитання було перенесено із переповнення стека, оскільки на нього можна відповісти на Exchange Stack Exchange. Мігрували 7 років тому . Наша модель даних налічує майже 200 класів, які можна розділити на близько десятка функціональних областей. Було б добре використовувати домени, але розділення не є таким чистим, і ми не …

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

4
Як називається ідіома, що використовує метод ланцюжка для побудови об'єкта?
Я часто використовую шаблон, коли я використовую метод ланцюга для установки об'єкта, подібного до Builderабо Prototypeшаблону, але не створюю нових об'єктів при кожному виклику методу, замість того, щоб змінювати вихідний об'єкт. Приклад: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); Цікаво, чи існує назва цього шаблону і чи вважається він антидіаграмою, адже він може читати …

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

3
Як зберігати ціни, які мають ефективні дати?
У мене є список товарів. Кожен з них пропонується N провайдерами. Кожен провайдер котирує нам ціну на конкретну дату. Ця ціна діє, поки цей постачальник не вирішить встановити нову ціну. У такому випадку постачальник надасть нову ціну з новою датою. Наразі заголовок таблиці MySQL виглядає так: provider_id, product_id, price, date_price_effective …

1
Яка різниця між контролером у MVC та ViewModel у MVVM?
Я не бачу різниці між MVC та MVVM чітко. Я відчуваю, що команда в ViewModel подібна методу дії в контролері. І Контролер, і ViewModel повідомлять Перегляд, щоб оновитись після зміни стану Моделі за допомогою Прив'язки даних. У чому головна відмінність двох моделей?

3
Конструктор з тоннами параметрів проти малюнка будівельника
Добре відомо, що якщо у вашому класі є конструктор з багатьма параметрами, скажімо, більше 4, то це, швидше за все, кодовий запах . Вам потрібно переглянути, якщо клас задовольняє SRP . Але що робити, якщо ми побудуємо і об'єктуємо, що залежить від 10 або більше параметрів, і, врешті-решт, встановимо всі …

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

4
Чи замінені названі аргументи замінюють модель конструктора?
Чи використовує мову, яка підтримує іменовані та необов'язкові аргументи, модель для розробника вже не має практичного використання? Builder: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Необов’язкові / названі аргументи: new Object(requiredA, requiredB, optionalA: "optional");

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

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