Язык программирования Java Дмитриев Андрей Владиславович andrei-dmitriev@yandex.ru Май 2007.

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



Advertisements
Похожие презентации
Программная иженерия Андрей Дмитриев ©
Advertisements

Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Программная инженерия Андрей Дмитриев ©
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Программная инженерия Дмитриев Андрей Владиславович
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Программная инженерия Андрей Дмитриев ©
Программная иженерия Андрей Дмитриев ©
Программная инженерия Дмитриев Андрей Владиславович
Наследование Полиморфизм ВЫЗОВ КОНСТРУКТОРОВ И ДЕСТРУКТОРОВ ПРИ НАСЛЕДОВАНИИ.
Обобщенные классы в C# Киньзибаев Рашид. Обобщение есть параметризированный тип.
Особенности Java. Блок static static { } Создание и уничтожение объектов new – создание объекта finalyze()
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
Практическое использование Java Макаревич Л. Г.. Инсталляция Java Документация в docs Прописать PATH (каталог bin в JSDK) Прописать CLASSPATH (путь к.
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Java: интерфейсы, наследование, обработка исключительных ситуаций Вашенков Олег Евгеньевич.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Транксрипт:

Язык программирования Java Дмитриев Андрей Владиславович Май 2007

Фабрика Создает экземпляр класса, принимая во внимание переданные параметры. Позволяет создавать экземпляры различных классов в зависимости от текущих нужд приложения.

Фабрика (базовый класс) public class Namer { //базовый класс protected String last; protected String first; public String getFirst() { return first; //возвращает имя } public String getLast() { return last; //возвращает фамилию }

Фабрика (наследники) public class FirstFirst extends Namer { //Иванов Иван через пробел public FirstFirst(String s) { int i = s.lastIndexOf(" "); //находим пробел if (i > 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first = ""; // пробела нет last = s; // значит просто Иванов }

Фабрика (наследники) public class LastFirst extends Namer { // Антон, Антонов через запятую public LastFirst(String s) { int i = s.indexOf(","); //ищем запятую if (i > 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last = s; //нет запятой first = ""; //все считаем за фамилию }

Класс-фабрика public class NamerFactory { //Возвращает тот или иной класс на основе факта присутствия запятой public Namer getNamer(String entry) { int i = entry.indexOf(","); if (i > 0) return new LastFirst(entry); else return new FirstFirst(entry); }… Данный класс возвращает подходящий экземпляр в зависимости от требований вызывающего класса. Как правило, экземпляры принадлежат одной иерархии наследников.

Выводы Предоставляет гибкий контроль за типом, количеством, временем создания порождаемых объектов. Изменение поведения фабрики и порождаемых объектов в течение работы программы.