Какие шаблоны для слабой связи Вы используете больше всего? [закрытый]

Просто используйте следующую команду:

Для экспорта:

mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz] 

Для импорта:

gunzip < [compressed_filename.sql.gz]  | mysql -u [user] -p[password] [databasename] 

Примечание: Между ключевым словом «-p» и вашим паролем нет пробела.

16
задан Fossmo 22 December 2008 в 13:40
поделиться

13 ответов

Образцовый Контроллер Представления .

В стороне: вещами, который останавливает меня пишущий связанные приложения, не являются просто шаблоны:

  • Именование . Если я не могу легко думать о названии своего класса, это или не делаю ничего или слишком многих вещей.

  • Тестируемость . Если я не могу легко дразнить зависимости своего класса, это - двойной дизайн.

13
ответ дан 30 November 2019 в 16:50
поделиться

Я использую шаблон Команды довольно часто. Это - шаблон, который просто продолжает давать проект после проекта.

7
ответ дан 30 November 2019 в 16:50
поделиться

Внедрение зависимости с пружиной является моим фаворитом. Дополнительно со знатоком распространено сделать этот действительно аккуратный прием сокрытия всех реализаций позади модуля API. Таким образом, если Ваш код имеет три модуля, "прикладное ядро", "externalsystems-api" и "externalsystems", можно заставить "прикладное ядро" зависеть ТОЛЬКО от externalsystems-api. Фактическая реализация и все их зависимости могут быть полностью невидимы для базового приложением модуля. Это действительно осуществляет намного более трудное разделение проблем и делает слабую связь легче.

аккуратная вещь состоит в том, что IDE, которые загружают эти установки знатока, осуществляют эти ограничения видимости. Таким образом, Вы не собираетесь быть способными к ссылочному SQL, ОСИ, JAXB или безотносительно в Вашем прикладном ядре

6
ответ дан 30 November 2019 в 16:50
поделиться

Некоторые связанные с SOA шаблоны (сервисная шина предприятия, например) предлагают абстракцию в более высоком уровне и разделение поддержки проблем через бизнес-услуги и технические службы. Слабая связь между сервисами тогда (возможно) поддерживается путем представления брокера, или соедините шиной, который разъединяет сервисы в решении.

2
ответ дан 30 November 2019 в 16:50
поделиться

Шаблон "посетитель" работает вполне хорошо

2
ответ дан 30 November 2019 в 16:50
поделиться

Я думаю, что один из фундаментальных методов, "Говорят, не Спрашивают Принцип, Закон Demeter". Возможно, это не похоже на DI, UI или другие Шаблоны Desing, но я думаю объекты, что паровой этот принцип слабо связывается и делает одну вещь хорошо.

"Сохраняют Его Застенчивым Содержанием, которое Это Сушит, Говорят Другому Парню"

2
ответ дан 30 November 2019 в 16:50
поделиться

Да, важными является Внедрение зависимости и Инверсия Управления, но позволяет не, забывают Абстрактную Фабрику и Реестры.

1
ответ дан 30 November 2019 в 16:50
поделиться
1
ответ дан 30 November 2019 в 16:50
поделиться

Внедрение зависимости является формой Инверсии управления.

Платформа Spring имеет большую базу программистов Java, и она имеет реализацию.NET, также.

1
ответ дан 30 November 2019 в 16:50
поделиться

Внедрение зависимости и МОК оба превосходны для разъединения кода.

шоу Dotnetrocks 362 предоставляет очень хорошие определения. Также наблюдайте связанный телевизионный эпизод DNR для получения более ясного понимания.

0
ответ дан 30 November 2019 в 16:50
поделиться

Модель стратегии.

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

Из Википедии:

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

1
ответ дан 30 November 2019 в 16:50
поделиться

Инверсия управления как общий стиль кода/архитектуры.

DI как механизм для настройки IoC.

Локальные абстракции (я называю это "разработкой идеального окружения" - пишите так, как будто у вас есть точное окружение, которое вы хотите).

Объекты обычно взаимодействуют, используя методы void и передавая данные, а не геттеры/сеттеры.

Я никогда не использую зависимость непосредственно в основном бизнес-классе - она всегда абстрагируется в локальную абстракцию, а явный Bridge работает с зависимостью.

Я обнаружил, что эта комбинация позволяет получить чрезвычайно гибкий код с очень композиционным ощущением.

0
ответ дан 30 November 2019 в 16:50
поделиться

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

Для получения информации о преимуществах DI очень хороши эти две презентации: http://googletesting.blogspot.com/2008/11/clean-code-talks-dependency-injection.html http://googletesting.blogspot.com/2008/11/clean-code-talks-global-state-and.html

Для использования паттерна DI контейнер DI не нужен, но когда программа становится большой (десятки классов или много диапазонов), контейнер DI может сократить много шаблонов. На JVM я по умолчанию выбираю Guice.

0
ответ дан 30 November 2019 в 16:50
поделиться