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

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

6
Зробити код змінним за допомогою використання глобально унікальних ідентифікаторів повідомлень
За цим сценарієм розповсюджується загальна схема пошуку помилки: Дотримуйтесь дивнощів, наприклад, відсутність виводу або вивішування програми. Знайдіть відповідне повідомлення у журналі або програмі, наприклад, "Не вдалося знайти Foo". (Наступне є актуальним лише у тому випадку, якщо це шлях, який потрібно знайти, щоб знайти помилку. Якщо трак стека чи інша інформація …

9
Чи є утиліти класів, що не мають нічого, крім статичних членів, анти-шаблон у C ++?
Питання, куди я повинен розміщувати функції, не пов'язані з класом , викликав певну дискусію щодо того, чи є сенс у C ++ поєднувати утилітні функції в класі чи просто вони існують як вільні функції в просторі імен. Я походжу з фону C #, де останнього варіанту не існує, і, природно, …

10
Відмінність ідіоми від дизайну?
Чим відрізняється ідіома від дизайну? Здається, ці термінології десь перетинаються; де саме, я не знаю. Вони взаємозамінні? Коли я повинен використовувати що? Ось список ідіом C ++. Чи можу я назвати їх моделями дизайну? Вікіпедія визначає, Програмування ідіоми як модель дизайну низького рівня Що це означає? Що тут означає "низький …

6
Скільки логіки бізнесу має бути дозволено існувати в рівні контролера?
Іноді у коді контролера наших додатків представлена ​​деяка логіка бізнесу. Зазвичай це логіка, яка відрізняє методи виклику від моделі та / або які аргументи для їх передачі. Іншим прикладом цього є набір функцій утиліти, які існують у контролері, які можуть працювати для форматування або санітарії даних, повернених із моделі, відповідно …

4
Де нам слід поставити валідацію доменної моделі
Я все ще шукаю найкращу практику для перевірки доменної моделі. Це добре, щоб включити перевірку в конструктор доменної моделі? приклад перевірки моделі мого домену наступним чином: public class Order { private readonly List<OrderLine> _lineItems; public virtual Customer Customer { get; private set; } public virtual DateTime OrderDate { get; private …

9
Чи потрібно завжди писати об'єктно-орієнтований код, дотримуючись схему дизайну?
Чи можлива схема дизайну для будь-якої об'єктно-орієнтованої програми? Я запитую це тому, що нещодавно я побачив реалізацію Doorкласу з a Lock. Це було частиною тесту, у відповіді сказано, що код відповідає шаблону Null Object: class Lock { public: virtual void close() = 0; virtual void open() = 0; virtual bool …

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

11
Переконайтесь, що кожен клас несе лише одну відповідальність, чому?
Відповідно до документації Microsoft, статті статті Wikipedia SOLID або більшості ІТ-архітекторів, ми повинні гарантувати, що кожен клас несе лише одну відповідальність. Мені хотілося б знати, чому, якщо всі, здається, згодні з цим правилом, схоже, ніхто не погоджується з причинами цього правила. Деякі кажуть, що це краще обслуговування, деякі кажуть, що …

4
Чому модель введення залежності не була включена до групи банди з чотирьох?
Чому модель введення залежності не була включена в групу з чотирьох ? Чи був GOF раніше широко поширеним автоматизованим тестуванням? Чи в даний час введення залежності вважається основною схемою?

11
Чи справді потрібен "C" у MVC?
Я розумію роль моделі та подання у моделі Model-View-Controller, але мені важко зрозуміти, чому потрібен контролер. Припустимо, ми створюємо шахову програму, використовуючи підхід MVC; стан ігор повинен бути моделлю, а графічний інтерфейс - переглядом. Що саме в цьому випадку є контролером? Це просто окремий клас, який має всі функції, які …

6
Чи "Mapper" є дійсним дизайнерським малюнком чи це варіація "Фабричного" шаблону?
Поширений зразок, який я бачу, - це відомий як Mapperшаблон (не плутати з ним DataMapper- це щось інше цілком), який бере в якості аргументу якесь «сире» джерело даних (наприклад, ADO.NET DataReaderабо DataSet) і відображає поля на властивості на об'єкті бізнесу / домену. Приклад: class PersonMapper { public Person Map(DataSet ds) …

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

6
Як уникнути великих і незграбних UITableViewController на iOS?
У мене є проблема при впровадженні MVC-схеми на iOS. Я здійснив пошук в Інтернеті, але, здається, не знайшов жодного приємного рішення цієї проблеми. Багато UITableViewControllerреалізацій здаються досить великими. Більшість прикладів, які я бачив, дозволяє UITableViewControllerреалізувати <UITableViewDelegate>та <UITableViewDataSource>. Ці реалізації є великою причиною того UITableViewController, що стає великим. Одним з рішень …

8
Чи стає OOP легше чи складніше? [зачинено]
Коли концепції об'єктно-орієнтованого програмування були впроваджені програмістами ще тому, це виглядає цікаво, а програмування було більш чистим. OOP був такий Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Це було легше зрозуміти під назвою, що само описується. Але тепер OOP з таким малюнком, як об'єкти передачі даних, об'єкти цінності, сховище, введення …

4
Важливість шаблонів дизайну з Javascript, NodeJs та ін
Оскільки Javascript виявився всюдисущою мовою програмування в Інтернеті протягом наступних кількох років, нові рамки спливають кожні п’ять хвилин і програмування, кероване подіями, ведучими як сервер, так і клієнт: Ви як розробник Javascript вважаєте традиційні шаблони дизайну важливими або менш важливими, ніж вони були для інших мов / середовищ ?. Назвіть, …

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