Я пишу Java-компонент, который будет выполнять довольно тяжелую работу с некоторыми большими данными. Следовательно, эффективность (как скорость, так и память) имеет первостепенное значение.
Я также только начинаю работать с IoC и платформами внедрения зависимостей (такими как Spring AOP, Google Guice и т. Д.), И мне было интересно, могут ли они вообще помочь мне.
Я хотел бы сделать что-то вроде этого (все в моем коде):
List<MyData> oMyData = new List<MyData>();
Затем, в каком-то XML-файле конфигурации (или, тем не менее, платформа настраивает инъекции), я бы указал, что каждый раз, когда создается экземпляр List, для внедрения, скажем, ArrayList<MyData>
в качестве его реализации.
Таким образом, если в будущем я решу использовать другую реализацию или даже что-то доморощенное, которое подходит моему приложению более эффективно, чем что-либо, предоставляемое коллекциями Java, мне нужно только изменить класс, который вводится. Никаких других изменений не потребуется, и мой код будет работать намного эффективнее.
Это возможное решение, или это просто большие мечты? Опять же, потому что я так плохо знаком с фреймворками IoC, сложно сказать, над какими объектами будут работать инъекции, можно ли сохранить дженерики во время инъекции, и всякие другие усложняющие детали, я не могу найти ответы нигде.
Заранее спасибо за любые идеи или рекомендации!