Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемТимур Федяев
1 §15 Минимизируйте mutability
2 Признаки immunable класса Не создавайте методов, способных изменить состояние объекта (mutators) Убедитесь, что от класса нельзя отнаследоваться. Делайте все поля final Делайте все поля private Убеждайтесь в эксклюзивности доступа ко всем mutable полям
3 Пример
5 Immunable объекты просты Immunable объекты потомственно thread-safe, не требуют синхронизации Также, они могут свободно share Не следует имплементировать clone() или конструктор копирования в таких объектах. Не только вы можете share immunable объекты. Вы можете share их внутренние поля. Immunable объекты очень удобны при создании других объектов
6 Единственный недостаток immunable объектов, это то, что для каждого нового значения вам необходим новый экземпляр. –BitSet vs BigInteger и метод flipBit() Поэтому существуют mutable компаньоны (String и StringBuilder)
7 Иной подход: Это позволяет расширять так:
8 Не всегда понимают что immunable класс должен быть final, и это может привести к плохим последствиям Поэтому: Классы следует создавать immutable до тех пор пока у вас нет веских причин сделать наоборот.
9 Если класс не может быть immutable, ограничьте его изменяемость как только это возможно Делайте каждое поле final, пока нет достаточной причины сделать не так. Пример: TimerTask, java.util.Date, java.awt.Point
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.