§4 Создавайте без экземплярные классы при помощи private конструктора.

Презентация:



Advertisements
Похожие презентации
Лекция 8. Введение в ООП. Часть 1 Красс Александр СПбГУ ИТМО, 2008.
Advertisements

Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Конструктор урока.
Д.з Язык С++ - занятие 31. Задача 1: 1/1 + 1/3 + 1/5 … #include using namespace std; int main() { int n; cin >> n; double sum = 0;// Сумма for.
Лекция 3 Организация дисков; монтирование и размонтирование файловых систем; даемоны, сигналы, уничтожение процессов; подключение новых пользователей;
Безопасность в разработке ПО. Модель угроз Для построения модели нарушителя необходимо обратиться к существующим практикам.
ООП Классы – 2.
Безопасность в сети Интернет для Детей. «Есть много путей преодоления опасностей, если человек хоть что – то готов говорить и делать» Сократ.
Лекция 5 Управление памятью Виртуальное адресное пространство.
Классы в C#. Две роли классов Класс Класс – это модуль, архитектурная единица построения программной системы. Модульность построения – основное свойство.
Язык программирования Java Дмитриев Андрей Владиславович
Что? ___________________________ Какой? ____________________ _____________________ Что делает? Что делал? _________________ ________________ ____________.
Пример1 Мир
Ссылки на интернет ресурсы jpg 4.jpg 3. or.jpg or.jpg kinolenta s k adrami the end.jpg kinolenta s k adrami the end.jpg 6. wallpapers/shrek.
Мы вместе!!!!!!!!!!.
1 ряд 2 ряд 3 ряд КТО? ЧТО? ЧТО ДЕЛАТЬ? ЧТО СДЕЛАТЬ? КАКОЙ? КАКАЯ? КАКОЕ? ЗАПИСАТЬ 3 СЛОВА ЗАПИСАТЬ 3 СЛОВА ЗАПИСАТЬ 3 СЛОВА.
Добавление статьи на УМС. Зайдите на сайт и авторизуйтесь под своим логином и паролем Зайдите на сайт и авторизуйтесь под своим логином и паролем.

Сортировка базы данных Цель: Продолжить обучение с готовой БД: осуществлять поиск информации, сортировку, удаление и добавление записей.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
Транксрипт:

§4 Создавайте без экземплярные классы при помощи private конструктора

Попытка создать без экземплярный класс как abstract – не работает. Лучше так:

§5 Избегайте создания ненужных объектов

Не делайте так: Лучше так:

Пример для НЕ подражания:

Хороший пример:

Предпочитайте примитивы вместо boxed примитивов, и следите за неявным autoboxing.

§6 Уничтожайте устаревшие ссылки

Исправленная версия Тем не менее присвоение null ссылкам должно быть исключением, а не правилом

Другие места утечек памяти: –Когда класс оперирует с выделенной им самим памятью – это источник потенциальных проблем –Кэши –Listners and callbacks

§7 Избегайте finalizers

Finalizers непредсказуемы, часто опасны, и по большому счеты – не нужны Никогда не делайте ничего критически важного в finalizer Будьте готовы к медленной работе: –Создание и удаление простого объекта, около 5.6ns –При добавлении finalizer, оно становится 2400ns (в 430 раз медленнее) Предоставляйте внешний метод для уничтожения объекта

Метод для уничтожения обычно используется вместе с try - finally

Finalizer может использоваться для оповещения о том, что использованные ресурсы не освобождены (в дополнение к safety net) Полезно делать следующее Finalizer chaining: