Metodi statici vs Implementazione dell'interfaccia

1

Ecco il mio problema:

Ho iniziato a creare un raccoglitore di informazioni sul sito web di e-commerce.

Quindi ho creato un parser per ogni sito. La classe parser è stateless.

Ho metodi come:

getItemPrice(WebElement page)
getItemTitel(WebElement page)
getItemDescription(WebElement page)
etc..

Durante la creazione di un JUnit tests per quello il modo più comodo era di renderli metodi statici.

Durante la creazione del prossimo parser per la pagina successiva, ancora una volta avevo bisogno degli stessi metodi. Quindi è appena spuntato che qui è necessaria un'interfaccia di IItem per modifiche future, ecc. Pertanto ho un problema a impostare questi metodi come statici. Che richiedono di creare un'istanza di una classe stateless che porti a semplici factory per creare queste istanze ecc.

Non sono sicuro che questo Interface mi stia causando un sovraccarico o meno.

Qualche idea?

    
posta USer22999299 03.10.2014 - 08:58
fonte

1 risposta

1

Non penso che ci sarà troppo sovraccarico quando si utilizza un'interfaccia. Si può anche sostenere che l'uso di metodi statici potrebbe generare un sovraccarico in questo caso, a seconda di quanto diverse implementazioni si desidera supportare e di quanti metodi sono necessari.

Quando si usano i metodi statici, è necessario disporre di una logica che l'implementazione si deve usare, che è fondamentalmente una grande istruzione switch per ogni metodo. Ciò può essere semplificato inserendo un wrapper in tutte quelle implementazioni, ma valutare la stessa istruzione switch più e più volte per ogni metodo che si desidera chiamare non è davvero consigliabile.

Con l'uso delle interfacce questo sarà ridotto a una sola valutazione dell'istruzione switch (in fabbrica).

    
risposta data 03.10.2014 - 09:19
fonte

Leggi altre domande sui tag