Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемimprove-it.org
1 Программная иженерия Андрей Дмитриев ©
2 Шаблоны проектирования
3 Фабрика Создает экземпляр класса, принимая во внимание переданные параметры. Позволяет создавать экземпляры различных классов в зависимости от текущих нужд приложения.
4 Фабрика (базовый класс) public class Namer { //базовый класс protected String last; protected String first; public String getFirst() { return first; //возвращает имя } public String getLast() { return last; //возвращает фамилию }
0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first" title="Фабрика (наследники) public class RUName extends Namer { //Иванов Иван через пробел public RUName(String s) { int i = s.lastIndexOf(" "); //находим пробел if (i > 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first" class="link_thumb"> 5 Фабрика (наследники) public class RUName extends Namer { //Иванов Иван через пробел public RUName(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; // значит просто Иванов } 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first"> 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first = ""; // пробела нет last = s; // значит просто Иванов }"> 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first" title="Фабрика (наследники) public class RUName extends Namer { //Иванов Иван через пробел public RUName(String s) { int i = s.lastIndexOf(" "); //находим пробел if (i > 0) { first = s.substring(0, i).trim(); last = s.substring(i + 1).trim(); } else { first">
0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last =" title="Фабрика (наследники) public class USName extends Namer { // Антон, Антонов через запятую public USName(String s) { int i = s.indexOf(","); //ищем запятую if (i > 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last =" class="link_thumb"> 6 Фабрика (наследники) public class USName extends Namer { // Антон, Антонов через запятую public USName(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 = ""; //все считаем за фамилию } 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last ="> 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last = s; //нет запятой first = ""; //все считаем за фамилию }"> 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last =" title="Фабрика (наследники) public class USName extends Namer { // Антон, Антонов через запятую public USName(String s) { int i = s.indexOf(","); //ищем запятую if (i > 0) { last = s.substring(0, i).trim(); first = s.substring(i + 1).trim(); } else { last =">
0) return new USName (entry); else return new RUName(entry); }… Да" title="Класс-фабрика public class NamerFactory { //Возвращает тот или иной класс на основе факта присутствия запятой public Namer getNamer(String entry) { int i = entry.indexOf(","); if (i > 0) return new USName (entry); else return new RUName(entry); }… Да" class="link_thumb"> 7 Класс-фабрика public class NamerFactory { //Возвращает тот или иной класс на основе факта присутствия запятой public Namer getNamer(String entry) { int i = entry.indexOf(","); if (i > 0) return new USName (entry); else return new RUName(entry); }… Данный класс возвращает подходящий экземпляр в зависимости от требований вызывающего класса. Как правило, экземпляры принадлежат одной иерархии наследников. 0) return new USName (entry); else return new RUName(entry); }… Да"> 0) return new USName (entry); else return new RUName(entry); }… Данный класс возвращает подходящий экземпляр в зависимости от требований вызывающего класса. Как правило, экземпляры принадлежат одной иерархии наследников."> 0) return new USName (entry); else return new RUName(entry); }… Да" title="Класс-фабрика public class NamerFactory { //Возвращает тот или иной класс на основе факта присутствия запятой public Namer getNamer(String entry) { int i = entry.indexOf(","); if (i > 0) return new USName (entry); else return new RUName(entry); }… Да">
8 Выводы Предоставляет гибкий контроль за типом, количеством, временем создания порождаемых объектов. Изменение поведения фабрики и порождаемых объектов в течение работы программы.
9 Q&A
10 Спасибо! Андрей Дмитриев ©
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.