2012-03-14 11 views
0

我們使用彈簧框架,並遇到這樣的情況:如何拆分服務類和util類之間的應用程序功能?

我們有服務類,例如CatalogManager,CourseManager,我們現在要讓他們有像例如parseXML這樣的函數。

我的問題是我應該將這些方法放入每個個別類中,例如CatalogManager或CourseManager中的parseXML方法?或者我們應該創建一個XMLUtil類並在這個類中創建諸如parseCatalogXMl和parseCourseXML的方法?

謝謝。

回答

1

這取決於parseXML()將會做什麼。

案例1:如果所有的parseXML()方法會做同樣的事情,那麼你應該有一個parseXML()方法的類。爲什麼?它避免了不必要的重複,更容易更新,並且更容易擴展。

案例2:如果所有的parseXML()方法會有所不同(majorly,不只是幾行),這將是更容易實現在每類中的方法。爲什麼?試圖將許多不同的方法合併爲一個是複雜和醜陋的。

案例3:創建的CatalogManagerCourseManager具有parseXML()方法的超類。然後,如果一個子類需要用這個方法做一些不同的事情,它可以簡單地覆蓋它。

你應該使用哪一個?最終的解決方案是最優選的,因爲它使您的代碼簡單,可擴展,可讀和可更新,並結合前兩種方法中最好的方法。但是,如果前兩種情況嚴格適用,應該使用這些情況。

你的階級結構是這樣的:

Manager   // the super class, this implements parseXML(). 
    CatalogManager // a sub class, overriding parseXML() only if it needs to. 
    CourseManager // same as above. 
XMLUtil   // this class is only necessary in case 1. 

這是你的最終決定。沒有一種情況比其他任何情況都快,只需選擇一個你想要的。

相關問題