Публикации по теме 'software-design'


Шаблон проектирования моста с примером
Что такое шаблон проектирования моста? Согласно определениям GOF, шаблон моста "отделяет абстракцию от ее реализации, чтобы они могли меняться независимо друг от друга" В шаблоне проектирования моста есть два слоя. Первый уровень — это уровень абстракции. а второй уровень — это уровень реализации. Если я внесу какие-либо изменения на уровне реализации, это не повлияет на уровень абстракции. Точно так же, если я внесу какие-либо изменения в уровень абстракции, это не повлияет на..

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

Общая изменчивость: обращайтесь осторожно!
Давайте разделим эти два слова на две части и поймем их одно за другим. Shared и Mutability Совместное использование Совместное использование в информатике означает совместное использование ресурсов, таких как ввод-вывод, данные и т. д., между несколькими процессами. В случае данных в качестве ресурса совместное использование может означать разрешение на чтение и / или обновление его несколькими процессами. Совместное чтение Несколько процессов могут читать общий ресурс,..

Горизонтальные и вертикальные уровни в разработке программного обеспечения
…и лежащие в его основе идеи В этом посте я поделюсь некоторыми идеями о структурировании программного приложения. Я опишу, что для меня горизонтальная и вертикальная многослойность и покажу, как их можно применить. Почему Распределение приложения по уровням полезно для лучшего обзора приложения, чтобы было ясно, чего ожидать на конкретном уровне. У вас менее сложные и непрозрачные зависимости. Все это применимо к вертикальным и горизонтальным слоям, но действует по-разному...

Конструктивный кодовый конфликт
Наклонитесь и используйте шанс учиться и становиться лучше. Разногласия — естественная часть работы инженера-программиста. Будь то проверка кода или разработка новых систем, существует более одного способа сделать что-либо, и часто нет четкого «наилучшего» способа. Мы часто уклоняемся от конфликтов, но конструктивное принятие различий во мнениях повышает уровень обучения и помогает нам создавать более совершенные системы. В теории это звучит великолепно, но как мы делаем это в..

Заводской узор
Что такое Фабрика: Фабрика — это фрагмент кода или блок кода, который позволяет нам создавать целые объекты одновременно. Мотивация: В некоторых случаях не рекомендуется создавать объекты с помощью конструкторов, потому что они привязаны к классам, и их имена должны совпадать с именами классов, что делает их менее информативными и не позволяет нам действительно описывать больше с их помощью. Кроме того, передача нескольких параметров может сбивать с толку, и если нам..

Паттерны проектирования в Ruby: структурные паттерны
Обзор шаблонов структурного проектирования в Ruby Обзор структурных моделей 1. Адаптер Упрощенное определение: преобразование интерфейса в унифицированный интерфейс. Определение GoF: «Преобразование интерфейса класса в другой интерфейс, ожидаемый клиентами. Адаптер позволяет классам работать вместе, что иначе было бы невозможно из-за несовместимых интерфейсов ». «2. Мост" Упрощенное определение: варьируйте как реализацию, так и ее абстракцию. Определение GoF:..