Byłoby dość niezwykłe w nowoczesnym oprogramowaniu mieć 25 luźnych zmiennych na funkcji wywołującej, a następnie przekazać je jawnie do metody lub ctor.
Najczęściej, w projekcie OO, zmienne te byłyby już zapakowane do klasy (lub kilku klas), pogrupowane według ich logicznych obowiązków.
A ponieważ Java
przekazuje obiekty przez odniesienie, podanie referencji pojedynczego obiektu na stosie może przynieść pewne korzyści z wydajności (mniej zmiennych do wypchnięcia do stosu). Jednak prawdziwą korzyścią byłaby czytelność kodu i konserwacja.
Należy jednak zauważyć, że wykonanie tej czynności wymagałoby podzielenia klasy obiektu między konsumenta a usługę - może to być problem, w zależności od tego, co model transferu modyfikuje (np. Czy jest to transfer danych Obiekt, jednostka biznesowa, model widoku, obiekt serializacji XML/JSON itp.?). Jeśli dzielenie się typem między dzwoniącym a odwołanym naruszałoby twoją architekturę, zazwyczaj mapujesz 25 zmiennych do innej odpowiedniej klasy kanonicznej (lub klas, ponownie obserwując obawy dotyczące refaktoryzacji SRP) i zamiast tego przekazujesz je (te). W tym momencie nie będzie korzyści z wydajności, ale korzyści z czytelności/konserwacji zostaną zachowane.
mimochodem, że wiele parametrów do konstruktora jest zapach kod w każdym razie niezależnie od wydajność. Przy tak wielu parametrach bardzo prawdopodobne jest popełnienie błędu (np. Cofnięcie dwóch parametrów tego samego typu). –
http://stackoverflow.com/questions/5727336/performance-variable-argument-methods-in-java, które powinny ci pomóc. –
Proponuję profilowanie różnych aspektów twojej aplikacji, aby zidentyfikować, gdzie właściwie znajdują się szyjki butelek, zanim spróbujesz zoptymalizować. Na przykład wszystko, co wiąże się z dostępem do sieci, źle napisane zapytania do bazy danych itp. – Romski