Приветствую Вас ГостьСреда, 15.05.2024, 07:30

Программирование на Java, Android, Delphi


Блог

Главная » 2013 » Май » 21 » Шаблоны проектирования. Абстрактная фабрика
11:58
Шаблоны проектирования. Абстрактная фабрика
Шаблон проектирования "Абстрактная фабрика" (Abstract Factory) относится к производящим шаблонам. Этот паттерн предназначен для создания группы объектов. Смысл в том, что их конкретные классы не объявляются, позволяя заменять их в дальнейшем, как отдельные объекты так и все взаимосвязанное семейство. По сути, шаблон абстрактная фабрика представляет собой набор Фабричных методов (шаблон "Фабричный метод" Factory Method)



Пример:
//абстракные классы описывающие автомобиль - кузов, подвеску, салон
abstract class Body{
abstract String getBody();
}

abstract class Lug{
abstract String getLug();
}

abstract class Salon{
abstract String getSalon();
}



//интерфейс определяет группу объектов, которые создаются абстрактной фабрикой
interface Car{
//создание кузова
Body CreateBody();
//создание подвески
Lug CreateLug();
//создание салон
Salon CreateSalon();
}

//конкретные классы для автомобиля Лада
class LadaBody extends Body{

@Override
String getBody() {
return "Кузов автомобиля Лада";
}
}

class LadaLug extends Lug{
@Override
String getLug(){
return "Подвеска автомобиля Лада";
}
}

class LadaSalon extends Salon{
@Override
String getSalon(){
return "Салон автомобиля Лада";
}
}


//конкретный класс, который создает набор связанных объектов для автомобиля Лада
class LadaFactory implements Car{

@Override
public Body CreateBody() {
return new LadaBody();
}

@Override
public Lug CreateLug() {
return new LadaLug();
}

@Override
public Salon CreateSalon() {
return new LadaSalon();
}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//создаем в системе фабрику для инстанцирования отдельных узлов автомобиля Лада
LadaFactory lf = new LadaFactory();
//создаем отдельные узлы авто через фабрику
jTextArea1.append(lf.CreateBody().getBody() + "\n");
jTextArea1.append(lf.CreateLug().getLug() + "\n");
jTextArea1.append(lf.CreateSalon().getSalon() + "\n");

}
Категория: Java (Разработка программного обеспечения на Java) | Просмотров: 2527 | Добавил: alex | Теги: Абстрактная фабрика, паттерны проектирования, Abstract Factory, паттерн, шаблоны проектирования | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Май 2013  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей