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

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

6
Переваги стратегії
Чому вигідно використовувати шаблон стратегії, якщо ви можете просто написати свій код у випадках, якщо / тоді? Наприклад: у мене є клас TaxPayer, і один із його методів обчислює податки за допомогою різних алгоритмів. То чому б вона не могла мати, якщо / тоді випадки і зрозуміти, який алгоритм використовувати …

5
Якщо інше - повторена логіка коду
Мій начальник дав мені проект з певною логікою. Мені потрібно розробити веб-сторінку, яка повинна вести навігатор через багато випадків, поки він / вона не надійде до продукту. Це схема шляху навігації на сайті: ВАЖЛИВО! На сторінці Продукти навігатор може вибрати, який фільтр він хоче. Якщо A, він / вона ПОВИНЕН …

1
Коли використовувати прототипічне програмування в JavaScript
Я витратив багато часу на розробку простих віджетів для проектів наступним чином: var project = project || {}; (function() { project.elements = { prop1: val1, prop2: val2 } project.method1 = function(val) { // Do this } project.method2 = function(val) { // Do that } project.init = function() { project.method1(project.elements.prop1) project.method2(project.elements.prop2) …

4
Чи функції першого класу є замінником структури стратегії?
Шаблон дизайну Стратегії часто розглядаються в якості заміни для функцій першого класу на мовах , які НЕ мають їх. Так, наприклад, скажіть, що ви хотіли передати функціональність об'єкту. У Java вам доведеться передати об’єкту ще один об'єкт, який інкапсулює бажану поведінку. Мовою, такою як Ruby, ви просто передасте функціональність у …

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

4
Додавання поля до класу під час виконання - шаблон дизайну
Уявіть, що ваш клієнт хоче мати можливість додати нову властивість (наприклад, колір) до продукту у своєму магазині у своїй CMS. Замість того, щоб мати властивості як поля: class Car extends Product { protected String type; protected int seats; } Ви, напевно, вчинили щось подібне: class Product { protected String productName; …

4
Повернення булевого типу, коли успіх чи невдача є єдиною турботою
Мені часто доводиться повертати булевий метод із методу, який використовується в декількох місцях, щоб містити всю логіку навколо цього методу в одному місці. Необхідно знати весь метод (внутрішнього) виклику - успішна операція чи ні. Я використовую Python, але питання не обов'язково стосується цієї мови. Є лише два варіанти, які я …

2
Я повинен був використовувати заводський метод замість конструктора. Чи можу я це змінити і все ще бути сумісним назад?
Проблема Скажімо, у мене є клас під назвою, DataSourceякий забезпечує ReadDataметод (а може бути й інші, але давайте будемо робити прості речі) для читання даних з .mdbфайлу: var source = new DataSource("myFile.mdb"); var data = source.ReadData(); Через кілька років я вирішую, що хочу підтримувати .xmlфайли на додаток до .mdbфайлів як …

5
Спосіб повернення декількох повернених значень методу: ввести метод всередині класу, що представляє повернене значення. Це гарний дизайн?
Мені потрібно повернути 2 значення з методу. Мій підхід такий: створити внутрішній клас з 2 полями, які будуть використані для збереження цих двох значень помістити метод всередині цього класу інстанціювати клас та викликати метод. Єдине, що буде змінено в методі, це те, що врешті-решт він призначить ці 2 значення полям …

8
Чи є модель дизайну, крім MVC для Інтернету?
Хочеться знати, чи існують шаблони дизайну для Інтернету, крім MVC? Я знаю, що існують такі схеми дизайну як: Реєстр, Оглядач, Фабрика, ActiveRecord, ... і MVC - це набір інших шаблонів дизайну та структури папок. Чи є модель дизайну, як MVC, це набір інших моделей дизайну? Редагувати: моя мова програмування - …

4
Чи може на MVC кілька переглядів мати один і той же контролер, або один вид повинен мати один унікальний контролер?
У мене виникають запитання під час розробки архітектури проекту навколо MVC. (Це проект SD + C ++ / Marmalade, я не використовую жодної конкретної рамки MVC, я її роблю.) У кількох статтях (як, наприклад, в оригінальній статті Стіва Бурбека ) я продовжую читати концепцію "тріади MVC", яка бовтає мене, оскільки …

2
Чи краще мати окремі дії "Створити та редагувати" або об'єднати "Створити та змінити" в одну?
Ми використовуємо ASP.NET MVC 2 з контролером / переглядом презентаційного шару та моделі, що складається з бізнес-логічного шару, рівня доступу до даних [збережені процедури та класи / методи для спілкування із збереженими процедурами]. На рівні бізнесу та вище для більшості цілей редагування, здається, здатне представляти як створення об'єкта, так і …

2
Як реалізовані дженерики в сучасному компіляторі?
Що я тут маю на увазі, як ми переходимо від якогось шаблону T add(T a, T b) ...до згенерованого коду? Я продумав декілька способів цього досягти, ми зберігаємо загальну функцію в AST як Function_Nodeі тоді, коли ми використовуємо її, ми зберігаємо в оригінальному вузлі функції копію себе з усіма типами, …

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

2
Чи слід вводити логіку обчислення в об'єкті чи в бізнес-шарі?
Нещодавно у мене виникло питання про те, чи слід простий обчислення вводити в рівень Entity, чи Entity повинен бути чистим для простого зберігання необроблених даних і залишити логіку обчислень на рівні бізнесу. Отже, моє питання полягає в тому, чи розумним є інкапсуляція простих обчислень у властивостях у сутність класу?

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