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

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

1
Відкрити принцип закриття (OCP) проти принципу інверсії залежності (DIP)
Я намагався зрозуміти різницю між принципом відкритого закритого типу (OCP) та принципом інверсії залежності (DIP). На основі проведених нами досліджень в Інтернеті я прийшов до висновку, що "DIP - це один із варіантів, завдяки якому ми можемо досягти OCP". Я прав на це? Чи можете ви надати мені приклад, який …

2
Яка практична різниця між стилями введення залежності?
Я новачок у вживанні залежностей і у мене є кілька запитань про те, який стиль я повинен використовувати у своїх програмах. Я щойно прочитав інверсію контейнерів управління та схему вприскування залежності від Мартіна Фаулера, але я не можу отримати практичну різницю між конструктором, сетером та інжекційним введенням. Мені здається, що …

2
Реалізація схеми команд в API RESTful
Я зараз розробляю API HTTP, сподіваюсь зробити його максимально РЕСТЕВНІМ. Є деякі дії, функціональність яких поширюється на декілька ресурсів, і колись їх потрібно скасувати. Я подумав собі, це звучить як шаблон команди, але як я можу моделювати його в ресурс? Я введу новий ресурс під назвою XXAction, як DepositAction, який …

4
Чи погані непорушні / без громадянства одинаки?
Останнім часом відбулася якась революція проти одинаків, але чи з ними щось не так, якщо вони без громадянства? Я знаю розмови про надмірне використання і все ... це стосується всього лише не одиноких.

2
Шукаєте поради щодо дизайну OO
Я розробляю додаток, який буде використовуватися для відкривання та закриття клапанів у промислових умовах, і думав про щось таке, як це: - public static void ValveController { public static void OpenValve(string valveName) { // Implementation to open the valve } public static void CloseValve(string valveName) { // Implementation to close …

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

2
Чи здатні об’єкти Персистентності невідомі здійснити ліниве завантаження?
Постійність Ігнорування - це застосування принципу єдиної відповідальності, що на практиці означає, що об’єкти домену ( DO ) не повинні містити код, пов'язаний із стійкістю, натомість вони повинні містити лише логіку домену. а) Я припускаю, що це означає, що код, який контактує з нижчими шарами (тобто стійкими шарами), знаходиться поза …

4
Шаблони / стратегії дизайну для спеціальних полів та типів даних
Чи існують загальні стратегії чи шаблони проектування для проектування додатків, які мають або можливість додавати власні поля до об’єктів даних, або для створення власного власного визначення об'єктів. Наприклад, я маю на увазі такі продукти, як SalesForce, де ви можете мати власні типи інформації, рамки, такі як Expression Engine, і спосіб …

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

8
Наскільки "простий" - це справжнє рішення KISS? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

1
Шаблони для веб-додатків Ajax-важкі
Дотепер я був великим шанувальником шаблону MVC для розробки веб-додатків. Для Інтернету я розвивався здебільшого в PHP (з рамками Kohana та CodeIgniter) і Ruby (RoR). Коли мої програми стають важчішими на стороні Ajax (односторінкові додатки тощо), я помітив, що не можу не зрадити самих основних понять MVC: Javascript робить більшість …

8
Яка хороша практика кодування, коли робити функцію / метод для невеликих повторюваних сегментів коду?
Багато разів під час написання великих програм я запитував після того, скільки копій і вставляє сенс вводити код у функцію чи метод і що є хорошим правилом? Я використовував велике правило з чотирьох рядків або більше і з’являється більше, ніж удвічі, тоді я роблю просту функцію / метод, що містить …

3
Вдосконалення структури дизайнера Джошуа Блоха?
Ще в 2007 році я прочитав статтю про те, що Джошуа Блохс сприймає "модель побудови" та про те, як це можна змінити для покращення надмірного використання конструкторів та сеттерів, особливо коли об'єкт має велику кількість властивостей, більшість з яких є необов'язковими. Короткий виклад цього шаблону є articled тут . Ідея …

4
Уникайте методу ініціалізації
У мене є цей існуючий код, де у них є клас та метод ініціалізації в цьому класі. Очікується, що як тільки об’єкт класу буде створений, їм потрібно викликати ініціалізацію на ньому. Причина, чому існує метод ініціалізації . Об'єкт створюється рано, щоб мати глобальну область застосування, а потім метод ініціалізації викликається …

1
Архітектура програмного забезпечення для аутентифікації / контролю доступу веб-сервісу REST
Я створюю новий веб-сервіс RESTful і мені потрібно надати модель управління доступом на основі ролей . Мені потрібно створити архітектуру, яка дозволить користувачам надати своє ім’я користувача та пароль, щоб отримати доступ до служб, а потім обмежити, як вони можуть користуватися послугами (які сервіси вони можуть використовувати, читати проти читання …

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