Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткие ответы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
373.85 Кб
Скачать

16. Класс. Размеры класса. Принцип единой ответственности (srp).

СТРОЕНИЕ КЛАССА

По стандартным правилам Java класс должен начинаться со списка переменных. Сначала перечисляются открытые статические константы. Далее следуют при­ватные статические переменные, а за ними идут приватные переменные экземпляров. Открытых переменных обычно нет, трудно найти веские причины для их использования.

За списком переменных обычно следуют открытые функции. Мы предпочита­ем размещать приватные вспомогательные функции, вызываемые открытыми функциями, непосредственно за самой открытой функцией. Такое размещение соответствует правилу понижения, в результате чего программа читается как газетная статья.

КЛАССЫ ДОЛЖНЫ БЫТЬ КОМПАКТНЫМИ!

Первое правило: классы должны быть компактными. Второе правило: классы должны быть еще компактнее. Нет, мы не собираемся повторять текст из главы 3. Но как и в случае с функциями, компактность должна стать основным правилом проектирования классов. И для классов начинать следует с вопроса: «А насколько компактными?»

Размер функций определяется количеством физических строк. В классах исполь­зуется другая метрика; мы подсчитываем ответственности [RDD].

Имя класса должно описывать его ответственности. В сущности, имя должно стать первым фактором, способствующим определению размера класса. Если для класса не удается подобрать четкое, короткое имя, вероятно, он слишком велик. Чем туманнее имя класса, тем больше вероятность, что он имеет слишком много ответственностей.

Краткое описание класса должно укладываться примерно в 25 слов, без выражений «если», «и», «или» и «но».

ПРИНЦИП ЕДИНОЙ ОТВЕТСТВЕННОСТИ (SRP)

Принцип единой ответственности (SRP) утверждает, что класс или модуль должен иметь одну — и только одну — причину для изменения. Этот принцип дает нам как определение ответственности, так и критерий для оценки размера класса. Классы должны иметь одну ответственность, то есть одну причину для изменений.

Этот принцип дает нам как определение ответственности, так и критерий для оценки размера класса. Классы должны иметь одну ответственность, то есть одну причину для изменений.

Попытки идентификации ответственностей (причин для изменения) часто помогают выявить и создать более качественные абстракции для нашего кода.

Листинг. Класс с единой ответственностью

public class Version {

public int getMajorVersionNumberO

public int getMinorVersionNumberO

public int getBuildNumberO

}

17. Понятие связности класса. Влияние связности на размер классов.

СВЯЗНОСТЬ

Классы должны иметь небольшое количество переменных экземпляров. Каждый метод класса должен оперировать с одной или несколькими из этих переменных. Чем с большим количеством переменных работает метод, тем выше связность этого метода со своим классом. Класс, в котором каждая пере­менная используется каждым методом, обладает максимальной связностью.

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

ПОДДЕРЖАНИЕ СВЯЗНОСТИ ПРИВОДИТ К УМЕНЬШЕНИЮ КЛАССОВ

Поддержание связности приводит к уменьшению классов. Разбиения больших функций на меньшие приводит к росту количества классов.

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

Таким образом, разбиение большой функции на много мелких функций также часто открывает возможность для выделения нескольких меньших классов.

В результате строение программы улучшается, а ее структура становится более прозрачной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]