Вопросы с тегом «design-patterns»

Шаблон проектирования - это общее многократно используемое решение часто встречающейся проблемы в разработке программного обеспечения.

4
Является ли это «запахом шаблона» для размещения в вашей модели геттеров типа «FullName» или «FormattedPhoneNumber»?
Я работаю над приложением ASP.NET MVC, и у меня появилась привычка вставлять то, что кажется полезным и удобным средством получения, в мои классы моделей / сущностей. Например: public class Member { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; …

9
Шаблоны проектирования: я должен изучить их? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения стека Exchange. Закрыто 4 года назад . Так что странно задавать два вопроса подряд, но они не очень связаны, и я не хочу …

1
Какая процедура применяется при написании лексера на основе грамматики?
Читая ответ на вопрос « Разъяснение о грамматике, лексерах и парсерах» , в ответе говорилось, что: [...] грамматика BNF содержит все правила, необходимые для лексического анализа и анализа. Это показалось мне несколько странным, потому что до сих пор я всегда думал, что лексер вообще не основан на грамматике, в то …

6
Каков самый простой читаемый формат файла конфигурации? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Текущий файл конфигурации выглядит следующим образом: mainwindow.title = 'test' mainwindow.position.x = 100 mainwindow.position.y …

6
DDD встречает ООП: Как реализовать объектно-ориентированный репозиторий?
Типичная реализация хранилища DDD выглядит не очень хорошо, например, save()метод: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Инфраструктурная часть: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo { private …

1
Использование классов-друзей для инкапсуляции закрытых функций-членов в C ++ - хорошая практика или злоупотребление?
Итак, я заметил, что можно избежать размещения частных функций в заголовках, выполнив что-то вроде этого: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever …

4
Как класс должен сообщить своим пользователям, какое подмножество методов он реализует?
сценарий Веб-приложение определяет интерфейс пользователя IUserBackendс методами GetUser (UID) CreateUser (UID) deleteUser (UID) setPassword (uid, пароль) ... Различные пользовательские бэкэнды (например, LDAP, SQL, ...) реализуют этот интерфейс, но не каждый бэкэнд может делать все. Например, конкретный сервер LDAP не позволяет этому веб-приложению удалять пользователей. Таким образом, LdapUserBackendкласс, который реализует IUserBackend, …

2
Как избежать дублирования структур данных, когда части приложения написаны на разных языках?
В качестве примера, скажем, вы пишете приложение на Java . Ваше приложение взаимодействует с сервером API, написанным на Python . Сервер Python связывается с базой данных SQL . У вас также есть веб-сайт для вашего приложения, написанный на JavaScript . С 4 разными языками легко в конечном итоге повторить по …

5
Найти ближайший подходящий для круга
Ниже приведен пример изображения, если у меня есть точка белой точки в середине, и я хочу найти ближайшее возможное местоположение для синего круга (который, очевидно, находится в том месте, где я его поместил), если все красные круги уже существуют , Как я могу найти это место? Производительность для меня не …

8
Правильный дизайн для класса с одним методом, который может варьироваться между клиентами
У меня есть класс, используемый для обработки платежей клиентов. Все методы этого класса, кроме одного, одинаковы для каждого клиента, за исключением одного, который вычисляет (например), сколько должен пользователь пользователя. Это может сильно варьироваться от клиента к клиенту, и нет простого способа записать логику вычислений в нечто вроде файла свойств, поскольку …

3
Лучшие практики для использования публичного, защищенного, частного?
Справедливо ли говорить, что privateпри кодировании чего-либо является хорошей практикой по умолчанию все по умолчанию ? А затем обновите его только до того момента, protectedкогда это потребуется подклассу, или publicесли это понадобится другому классу?

3
Понимание структуры потока
Я на самом деле изучаю структуру потока, и есть кое-что, что я не могу понять относительно магазинов . Что именно они? Я прочитал много статей, и кажется, что это касается области. Означает ли это, что это «абстрактная» часть, относящаяся к вызовам API или серверным вызовам? Это не очень понятно для …

2
Почему «застежка-молния» игнорирует свисающий хвост коллекции?
C # , Scala, Haskell, Lisp и Python ведут себя одинаково zip: если одна коллекция длиннее, хвост молча игнорируется. Это может быть и исключение, но я не слышал ни о каком языке, использующем этот подход. Это озадачивает меня. Кто-нибудь знает причину, почему так zipзадумано? Я предполагаю, что для новых языков …

2
Как мне справиться со сбоями регистратора?
В некоторых приложениях нашей компании мы используем собственный регистратор. Он достаточно надежный, хотя в будущем мы можем заменить его чем-то вроде NLog. Одна из задач регистратора - регистрировать любые исключения, встречающиеся в приложении. Я всегда беспокоился о том, что обработка исключений в логгере допускает тихий сбой. То есть, если журнал …

3
Что такое хороший шаблон проектирования для создания файла Excel (xlsx) в коде?
Смотрите мое обновление внизу для получения дополнительной информации. Иногда у меня есть проекты, в которых я должен выводить некоторые данные в виде файла Excel (формат xlsx). Процесс обычно: Пользователь нажимает некоторые кнопки в моем приложении Мой код выполняет запрос к БД и как-то обрабатывает результаты Мой код генерирует файл * …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.