Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите по AbstractFactory / 4 сообщений из 4, страница 1 из 1
01.08.2011, 19:28
    #37375874
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по AbstractFactory
Допустим нужно создавать какой либо продукт, не во всех конкретных фабриках. В таком случае не имеет смысла вобше использовать сабжевый паттерн?
...
Рейтинг: 0 / 0
01.08.2011, 20:16
    #37375934
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по AbstractFactory
я ничего не понял.
хоть набросай примерный код
...
Рейтинг: 0 / 0
01.08.2011, 21:01
    #37375972
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по AbstractFactory
Код: plaintext
1.
2.
3.
4.
public interface AbstractFactory
{
public abstract Product1 createProduct1();
public abstract Product2 createProduct2();
}

соответсвено в первой фабрике

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class ConcreteFactory1
{
public Product1 createProduct1()
{
return new ConcreteFactory1Product1();
};
public Product2 createProduct2()
{
return new ConcreteFactory1Product2():
};
}

а вот во второй фабрике
например мне потребовалось добавить Product3, Но он не нужен в первой фабрике, тогда:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public interface AbstractFactory
{
public abstract Product1 createProduct1();
public abstract Product2 createProduct2();
public abstract Product3 createProduct3();
}

соответсвено в первой фабрике

public class ConcreteFactory1
{
public Product1 createProduct1()
{
return new ConcreteFactory1Product1();
}
public Product2 createProduct2();
{
return new ConcreteFactory1Product2():
}
public Product3 createProduct3()
{
???;
}
}
ну и во второй фабрике все реализовано..

клиент ожидает получить объект и не знает, что это фабрика его не делает

Код: plaintext
1.
2.
creqteProducts(ConcreteFactory1);
...
Product3 p = factory.createProduct3();
...
Рейтинг: 0 / 0
01.08.2011, 21:05
    #37375978
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по AbstractFactory
Iber
Код: plaintext
1.
2.
3.
4.
public interface AbstractFactory
{
public abstract Product1 createProduct1();
public abstract Product2 createProduct2();
}

соответсвено в первой фабрике

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class ConcreteFactory1
{
public Product1 createProduct1()
{
return new ConcreteFactory1Product1();
};
public Product2 createProduct2()
{
return new ConcreteFactory1Product2():
};
}

а вот во второй фабрике
например мне потребовалось добавить Product3, Но он не нужен в первой фабрике, тогда:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public interface AbstractFactory
{
public abstract Product1 createProduct1();
public abstract Product2 createProduct2();
public abstract Product3 createProduct3();
}

соответсвено в первой фабрике

public class ConcreteFactory1
{
public Product1 createProduct1()
{
return new ConcreteFactory1Product1();
}
public Product2 createProduct2();
{
return new ConcreteFactory1Product2():
}
public Product3 createProduct3()
{
???;
}
}
ну и во второй фабрике все реализовано..

клиент ожидает получить объект и не знает, что это фабрика его не делает

Код: plaintext
1.
2.
creqteProducts(ConcreteFactory1);
...
Product3 p = factory.createProduct3();


не, тут абстрактная не нужна.

Модератор: Убрано эмоциональное слово :)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите по AbstractFactory / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]