Инна Рафикова
Инна Рафикова

привести примеры нарушения и соблюдения критериев и правил при проектировании приложений.

при проектировании приложений существуют критерии, правила и принципы.
Критерии:

-декомпозиция

-композиция

-понятность

-непрерывность

-защищенность

Правила:

-прямое отображение

-минимум интерфейсов

-слабая связность

-явная интерпретация

-сокрытие информации

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

СК
Сергей Кузнецов

Для начала, что такое критерии:
Критерии, это признаки, по которым наблюдаемый объект можно отнести к тому или иному классу.

Критерии проектирования - это признаки, по которым можно судить проводилось ли проектирование ВООБЩЕ. Проблема в том, что использующийся в ОО программировании метод проектирования OOA&D уже удовлетворяет большинству критериев, так как подразумевает разбиение на классы, объединение классов в пакеты. Понятность достигается правильным названием и описанием, а непрерывность обеспечивается наличием классов. Проблемы с защищённостью решаются наличием исключений.

Почему так получилось? А потому, что этот метод СПЕЦИАЛЬНО так разработали, чтобы АВТОМАТИЧЕСКИ удовлетворять критериям.

С правилами всё интереснее:

ПРЯМОЕ ОТОБРАЖЕНИЕ - все сущности, модели которых были построены при анализе предметной области ОБЯЗАНЫ войти в виде классов. Пример+, пользователь, вводящий данные, представлен классом UserInput, весь ввод идёт только через него. Пример-, ввод данных для каждой из форм интерфейса выполнен независимо друг от друга.

МИНИМУМ ИНТЕРФЕЙСОВ - основные действия должны осуществляться внутри класса, сократить количество публичных методов классов до необходимого минимума. Пример+ не допускать такого для списка: вызвать Init - для создания, потом SetSize(size) для установки числа элементов, нужно Init(size). Пример- наличие "библиотечных" классов алгоритмов, которые вызываются кем угодно и когда угодно для выполнения сортировок, итераций и т. п.

СЛАБАЯ СВЯЗНОСТЬ - минимизировать ОБЪЁМ передаваемых данных, сократить количество параметров методов. Пример+ метод с 15 параметрами смотрится очень интересно, но лучше вместо него создать класс, который может содержать несколько методов для работы с этими данными, вместо одного сложного. Пример- не всегда есть необходимость в объединении параметров, функция printf работает нормально при любом количестве параметров.

ЯВНАЯ ИНТЕРПРЕТАЦИЯ - не должно быть скрытого взаимодействия между классами. Пример+ использование глобальных данных очень удобно, но отследить, кто их поменял, потребует усилий. Пример- совместная работа над ОДНИМИ данными - основной принцип многопоточного программирования.

СОКРЫТИЕ ИНФОРМАЦИИ - это основа ОО программирования, public и private - просто есть в любом классе.

ЗЫ
Примеры СПЕЦИАЛЬНО подбирались так, чтобы ни на одной стороне не было перевеса.

Похожие вопросы
Последствия к которым может привести нарушение разных правил
привести пример какой-либо химической реакции, проклассифицировать ее и на ее примере показать соблюдение законов сохран
Ответственность за нарушение правил по охране труда и контроль за соблюдением законодательства по охране труда.
Помогите привести примеры норм административного права!
Напишите пожалуйста примеры: "нарушение прав человека"
Приведите конкретные примеры соблюдения прав и свобод человека и их нарушения из жизни современного российского общества
привести пример: неформальных и формальных исполнителей
Какими программами пользуетесь для проектирования приложений ?
Можете привести пример из литературы, о нарушении законов природы. .
проектирование бд