Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / IoC inject + static context / 10 сообщений из 10, страница 1 из 1
26.02.2012, 20:22:56
    #37678807
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
Возможно я не до конца понимаю смысл IoC, но вот возник вопрос.

Есть допустим у меня какие-то сервисы, которые могут "инъектироваться"....

Хочется сделать класс , который бы имел статические методы для вызова инъектированных сервисов ( или их методов )

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class SomeClass {
    @Inject
    private static SomeServiceOne someServiceOne ;

    public static SomeServiceOne getSomeServiceOne() { 
        return someServiceOne;
    }

    @Inject 
    private static SomeServiceTwo someServiceTwo;
    
    public static SomeServiceTwo getSomeServiceTwo() { 
        return someServiceTwo;
    }

    @Inject 
    private static AnotherSomeServiceTwo anotherSomeServiceTwo;
    
    public static void executeSomethingFromAnotherSomeServiceTwo() { 
        anotherSomeServiceTwo.invokeSomeMethod();
    }
}



Вопрос в том, - делают ли так адекватные разработчики? Является ли это нормальным?

Если нет, то как можно по-другому получить такой функционал? )
...
Рейтинг: 0 / 0
26.02.2012, 22:00:45
    #37678921
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
scymaks,
а какой смысл в статической инъекции?
Статика, на то она и статика - что постоянна.
imho
...
Рейтинг: 0 / 0
26.02.2012, 22:33:32
    #37678962
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
Petro123,

я не очень понял что вы хотели сказать...
...
Рейтинг: 0 / 0
26.02.2012, 22:39:48
    #37678968
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
scymaks,
дак ты объясни конечную цель.
И чернил не жалей.
Т.к. абстракно:
- допустим есть.... хочется сделать...
Это конь в вакууме, либо контрольная.
IMHO
...
Рейтинг: 0 / 0
27.02.2012, 06:41:03
    #37679150
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
Petro123,

Конечная цель это узнать почему static injection это глупость )
...
Рейтинг: 0 / 0
27.02.2012, 09:40:22
    #37679225
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
scymaksPetro123,
Конечная цель это узнать почему static injection это глупость )
нету глупости абстрактной - она всегда конкретна (с)
Если абстрактно сферического коня, то можно.
Т.к. Ioc\DI просто подменяет переменную для ленивого программиста.
Если конкрено, то там 999 вариантов:
- вообще убрать DI (фабрика\синглетон\...)
-
Код: java
1.
2.
public class HibernateUtil {
	private static SessionFactory factory;



- выделить несколько статических в статический IoC класс целиком
- ..
IMHO
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
27.02.2012, 09:53:08
    #37679247
drsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
scymaks, глупость потому что, инжектят в _объект_.
и инжектят не с целью сохранить где-то кучку глобальных переменных, как ты пытаешся сделать,
а для того, чтобы объект, в который инжектят, обрел внутреннее состояние и стал работоспособным.

чтобы сделать типа статик есть:
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-factory-scopes
...
Рейтинг: 0 / 0
27.02.2012, 10:11:08
    #37679279
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
drsmи инжектят не с целью сохранить где-то кучку глобальных переменных, как ты пытаешся сделать,
а для того, чтобы объект, в который инжектят, обрел внутреннее состояние и стал работоспособным.
- с одной стороны, можно сказать, что сначала в ЯП убрали возможность Глобальных, а потом - вводили DI для их создания через левое правое ухо.
- с другой стороны, почему вы решили, что DI против инжекции глобального DAO\Connection\Logging\...?
Т.е. абстрактно - кто\что мешает?
...
Рейтинг: 0 / 0
27.02.2012, 11:25:44
    #37679479
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
scymaks,

лишь бы скоуп у них не прототайт был ;))
...
Рейтинг: 0 / 0
27.02.2012, 11:28:25
    #37679489
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IoC inject + static context
drsmscymaks, глупость потому что, инжектят в _объект_.
и инжектят не с целью сохранить где-то кучку глобальных переменных, как ты пытаешся сделать,
а для того, чтобы объект, в который инжектят, обрел внутреннее состояние и стал работоспособным.

чтобы сделать типа статик есть:
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-factory-scopes

Ну фабрику так вполне удобно делать, какую нить thread-safe .слегка иначе get конечно делать. Насколько я понимаю многие классы в том же спринге так и сделаны.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / IoC inject + static context / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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