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

Питання щодо вирішення проблем та планування рішення за допомогою розробки програмного забезпечення.

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

2
Класи Python лише з одним екземпляром: Коли створити (єдиний) екземпляр класу і коли замість цього працювати з класом?
Дано клас Python, який буде інстанціюватися лише один раз, тобто буде лише один об'єкт класу. Мені було цікаво, в яких випадках має сенс створити один екземпляр класу, а не працювати безпосередньо з класом. Існує подібне питання , але воно має іншу спрямованість: йдеться про групування глобальних змінних та функцій у …

1
Ефективний спосіб представити логіку шестикутної дошки для ігор, що нагадують абалони
Мені потрібно реалізувати гру AI для Abalone, і мені цікаво, який найкращий спосіб представити логіку дошки за допомогою Java, не витрачаючи занадто багато ресурсів на всі перевірки та оновлення. Краще використовувати різні списки? Матриця об'єктів Cell? Будь-яка пропозиція?

5
Чи слід завжди повністю інкапсулювати внутрішню структуру даних?
Врахуйте цей клас: class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } Цей клас виставляє масив, який він використовує для зберігання даних, будь-якому зацікавленому коду клієнта. Я це робив у додатку, над яким працюю. У мене був ChordProgressionклас, який зберігає послідовність …

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

4
Дизайн шаблон команди
У мене є ця стара реалізація шаблону Command. Це свого роду передача контексту через всю реалізацію DIOperation , але я зрозумів, що пізніше, в процесі навчання та навчання (що ніколи не припиняється), це не є оптимальним. Я також думаю, що "відвідування" тут насправді не підходить і просто плутає. Я насправді …

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

3
Використання бізнес-об’єктів у перегляді моделей
Використовуючи бізнес-об'єкти для багаторазового використання, що вважається найкращою практикою при побудові моделей перегляду? Ми використовуємо об'єкт, який ми називаємо Builderдля створення наших моделей перегляду. Один конструктор для кожної логічної одиниці переглядів (замовлення, користувачі тощо), де кожен блок може містити декілька різних моделей перегляду (замовлення містить підсумки, рядки замовлення тощо). Будівельник …

3
"Як погано" - неспоріднений код у блоці "пробую-нарешті"?
Це пов’язано із запитанням: Чи використання остаточного підрозділу для роботи після повернення поганого стилю / небезпечно? У посиланні Q, нарешті, код пов'язаний із використовуваною структурою та необхідністю попереднього вибору. Моє запитання дещо інше, і я вважаю, що він є широким для широкої аудиторії. Мій конкретний приклад - додаток для формату …

4
Термін "інтерфейс" в C ++
Java чітко розрізняє classта interface. (Я вважаю, що C # так само є, але я з цим не маю досвіду). Однак при написанні C ++ немає різниці між класом та інтерфейсом, що застосовується мовою. Отже, я завжди розглядав інтерфейс як вирішення проблеми відсутності багаторазового успадкування на Java. Здійснюючи таку різницю, …

5
Написання Тестового кодексу проти уникнення умоглядної загальності
Я читав деякі повідомлення в блозі сьогодні вранці, і наткнувся на це : Якщо єдиним класом, який коли-небудь реалізує інтерфейс клієнта, є CustomerImpl, у вас насправді немає поліморфізму та замінюваності, оскільки на практиці нічого не можна замінити під час виконання. Це підроблена загальність. Це має сенс для мене, оскільки реалізація …

3
Підхід до функціонального програмування для спрощеної гри за допомогою Scala та LWJGL
Я, імперативний програміст Java, хотів би зрозуміти, як створити просту версію Space Invaders на основі принципів дизайну функціонального програмування (зокрема, Референтна прозорість). Однак, кожного разу, коли я намагаюся придумати дизайн, я втрачаюсь у багнюці крайньої незмінності, тієї самої змінності, яку уникають пуристи з функціонального програмування. Як спроба вивчити функціональне програмування, …

6
Боротьба з єдиним принципом відповідальності
Розглянемо цей приклад: У мене є веб-сайт. Це дозволяє користувачам робити публікації (можуть бути будь-якими) та додавати теги, що описують публікацію. У коді я маю два класи, які представляють пост та теги. Давайте можемо називати ці класи Postта Tag. Postпіклується про створення публікацій, видалення публікацій, оновлення дописів тощо. Tagдбає про …

8
Що ви робите, якщо досягнете дизайнерського тупику в таких еволюційних методах, як Agile або XP?
Коли я читав відомий пост блогу Мартіна Фаулера Is Design Dead? Одне з найяскравіших вражень, яке я маю, полягає в тому, що, враховуючи той факт, що в Agile Методології та Екстремальному програмуванні дизайн та програмування еволюціонують, завжди є моменти, коли все потребує відновлення. Можливо, коли рівень програміста хороший, і вони …
11 design  agile 

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

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