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

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

13
Как реализовать шаблон Builder в Kotlin?
Привет, я новичок в мире Kotlin. Мне нравится то, что я вижу до сих пор, и начал думать о том, чтобы преобразовать некоторые из наших библиотек, которые мы используем в нашем приложении, из Java в Kotlin. Эти библиотеки полны Pojos с сеттерами, геттерами и классами Builder. Теперь я погуглил, чтобы …

12
Концептуально, как воспроизведение работает в игре?
Мне было немного любопытно, как воспроизведение может быть реализовано в игре. Сначала я думал, что будет просто список команд для каждого действия игрока / игрока, которое было предпринято в игре, а затем он «перезапускает» игру и позволяет механизму рендеринга как обычно. Тем не менее, я посмотрел на повторах в FPS …

8
Лучший способ построить систему плагинов с Java
Как бы вы внедрили систему плагинов для вашего Java-приложения? Возможно ли иметь простую в использовании (для разработчика) систему, которая обеспечивает следующее: Пользователи помещают свои плагины в подкаталог приложения Плагин может предоставить экран конфигурации Если вы используете платформу, совместима ли лицензия с коммерческим развитием?

6
Безопасна ли реализация Мейерсом потока шаблона Singleton?
SingletonБезопасна ли следующая реализация с использованием отложенной инициализации потока (Meyers 'Singleton)? static Singleton& instance() { static Singleton s; return s; } Если нет, то почему и как сделать это потокобезопасным?

14
Есть ли элегантный способ заставить каждый метод в классе начинаться с определенного блока кода?
У меня есть класс, в котором все методы запускаются одинаково: class Foo { public void bar() { if (!fooIsEnabled) return; //... } public void baz() { if (!fooIsEnabled) return; //... } public void bat() { if (!fooIsEnabled) return; //... } } Есть ли хороший способ требовать (и, надеюсь, не писать …

6
Как реализовать ленту активности в социальной сети
Разрабатываю собственную социальную сеть, и я не нашел в сети примеров реализации потока действий пользователей ... Например, как отфильтровать действия для каждого пользователя? Как сохранить события действия? Какую модель данных и объектную модель я могу использовать для потока действий и для самих действий?

10
Паттерны проектирования: абстрактная фабрика против фабричного метода
Примечание. Вопросы находятся в конце сообщения. Я прочитал другие потоки stackoverflow, касающиеся абстрактной фабрики и фабричного метода . Я понимаю цель каждого шаблона. Однако мне не совсем понятно определение. Factory Method определяет интерфейс для создания объекта, но позволяет подклассам решать, какие из них создавать. Заводской метод позволяет классам откладывать создание …

6
Можно ли создавать статические классы в PHP (как в C #)?
Я хочу создать статический класс в PHP и вести себя так же, как в C #, поэтому Конструктор автоматически вызывается при первом вызове класса Инстанцирование не требуется Что-то в этом роде ... static class Hello { private static $greeting = 'Hello'; private __construct() { $greeting .= ' There!'; } public …

11
Есть ли вариант использования синглтонов с доступом к базе данных в PHP?
Я получаю доступ к своей базе данных MySQL через PDO. Я настраиваю доступ к базе данных, и моей первой попыткой было использовать следующее: Первое, о чем я подумал global: $db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'root', 'pwd'); function some_function() { global $db; $db->query('...'); } Это считается плохой практикой. После небольшого поиска я …

11
Шаблон Builder в эффективной Java
Я недавно начал читать «Эффективную Java» Джошуа Блоха. Я нашел идею паттерна «Строитель» [пункт 2 в книге] действительно интересной. Я пытался реализовать это в своем проекте, но были ошибки компиляции. Вот, по сути, то, что я пытался сделать: Класс с несколькими атрибутами и его класс строителя: public class NutritionalFacts { …

7
Является ли ServiceLocator антишаблоном?
Недавно я прочитал статью Марка Симанна об анти-паттерне Service Locator. Автор указывает на две основные причины, почему ServiceLocator является анти-паттерном: Проблема использования API (с которой у меня все в порядке) Когда в классе используется локатор Service, очень трудно увидеть его зависимости, поскольку в большинстве случаев у класса есть только один …

4
MVC (Laravel) где добавить логику
Допустим, всякий раз, когда я выполняю операцию CRUD или изменяю отношения определенным образом, я также хочу делать что-то еще. Например, всякий раз, когда кто-то публикует сообщение, я также хочу что-то сохранить в таблице для аналитики. Может быть, не лучший пример, но в целом есть много этой "сгруппированной" функциональности. Обычно я …

3
Шаблон Наблюдателя против «Слушателей»
Мне кажется, что шаблон проектирования Observer, описанный в GOF, на самом деле является тем же, что и слушатели, найденные в различных наборах инструментов. Есть ли разница между понятиями, или слушатели и наблюдатели действительно одно и то же? (Я не ищу какой-либо конкретной реализации на компьютерном языке, я просто хочу понять …

10
База данных значений атрибутов сущностей против строгой реляционной модели электронной коммерции
Можно с уверенностью сказать, что модель базы данных EAV / CR плохая. Это сказало, Вопрос: Какую модель базы данных, технику или шаблон следует использовать для работы с «классами» атрибутов, описывающих продукты электронной коммерции, которые можно изменить во время выполнения? В хорошей базе данных электронной коммерции вы будете хранить классы опций …

8
Различия между шаблоном прокси и декоратором
Можете ли вы дать какое-нибудь хорошее объяснение, в чем разница между Proxy и Decorator ? Основное различие, которое я вижу, заключается в том, что когда мы предполагаем, что Proxy использует композицию, а Decorator использует агрегацию, тогда кажется очевидным, что, используя несколько (один или несколько) декораторов, вы можете изменять / добавлять …

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