2012-06-04 15 views
6

Obecnie pracuję z dość masywnym projektem z kilkoma klasami ponad 20 000 linii. Dzieje się tak, ponieważ był to świetny pomysł, aby wymieszać cały wygenerowany kod swingowy dla interfejsu z całym funkcjonalnym kodem. Zastanawiam się, czy nie spowoduje to dodatkowych kosztów w zakresie pamięci lub czasu pracy, aby przenieść większość funkcji związanych z nie-UI na osobną klasę. Aby dać przykład, jest to coś na kształt tego, co buduję.Efektywność Java przenoszenia metod do innej klasy

public class Class1{ 
    private Class1Util c1u; 
    List<String> infoItems; 
    ... 
    public void Class1(){ 
     c1u = new Class1Util(this); 
    } 
    public void btnAction(ActionListener al){ 
     ... 
     c1u.loadInfoFromDatabase(); 
    } 
} 

public class Class1Util{ 
    private Class1 c; 

    public void Class1Util(Class1 c){ 
     this.c = c; 
    } 
    public void loadInfoFromDatabase(){ 
     c.infoItems.add("blah"); 
    } 
} 

Ostatecznie Chciałbym również, aby przenieść niektóre z dziedzin takich jak infoItems ponad, jak również, które skutkowałyby w odwrotnej relacji z klasy 1 dostępu c1u.infoItems.

Odpowiedz

6

nie, separacja obaw jest dobrą praktyką projektową zorientowaną obiektowo. nie będzie Cię to kosztowało nic znaczącego pod względem wydajności i przyniesie Ci wiele, wiele korzyści pod względem konserwacji, rozszerzalności itp.

2

Możesz uzyskać małe trafienie wydajnościowe, aby uzyskać dodatkowy poziom dereferencji, ale nie być zauważalnym w kodzie UI, a dostaniesz o tyle większą jasność w zamian, że nie będziesz żałować.

Ostatecznie możesz zlecić utrzymanie stanu na trzeciej klasie, a następnie użyć tego stanu zarówno z kodu odręcznego, jak i wygenerowanego, lub użyć Generation Gap Pattern do zarządzania złożonością wynikającą z potrzeby integracji z wygenerowanym kodem.

+0

Uderzenie wydajnościowe nie będzie zauważalne w prawie dowolnym kodzie, z wyjątkiem prawdopodobnie systemu działającego w czasie rzeczywistym. – jtahlborn

+0

@jtahlborn Zgoda, potrzebujesz naprawdę ciasnej pętli, aby efekt dodatkowego poziomu pośredniego stał się zauważalny. – dasblinkenlight

Powiązane problemy