我想在應用程序作用域bean中的JSF中公開一堆常用靜態方法。現在,我的代碼如下:如何以一種乾淨的方式將類中的靜態方法分組
@ApplicationScoped
@Named
public class StaticUtils{
public static void bla(){ ... }
public static void blabla(MyParam param){ ... }
public static void bla2(){ ... }
public static void blabla2(MyParam param){ ... }
...
}
的事情是,我的豆增長太多,我有沒有與對方做的方法。因此,我想通過功能將它們組合在一起,並將它們提取到其他類中。之後,通過組合,我可以在前面提到的ApplicationScopedBean中獲得每個類的實例,並可以訪問通過包裝器方法分組的靜態方法。
public class A{
public static void bla(){ ... }
public static void blabla(MyParam param){ ... }
...
}
public class B{
public static void bla2(){ ... }
public static void blabla2(MyParam param){ ... }
...
}
@ApplicationScoped
@Named
public class StaticUtils{
public static void bla(){ A.bla(); }
public static void blabla(MyParam param){ A.blabla(param); }
public static void bla2(){ B.bla2(); }
public static void blabla2(MyParam param){ B.blabla2(param); }
}
由於多重繼承是不能直接在Java中使用,也不希望我用多繼承或@ApplicationScoped所有產生的豆子,有沒有更好/清潔/更簡潔的方式來做到這一點?我是否可以自動將類中內部對象的所有公共方法公開,使我的代碼可以或多或少與此類似?
@ApplicationScoped
@Named
public class StaticUtils{
private A a;
private B b;
...
}
任何想法?在此先感謝
首先感謝您的建議: - Pedrag,如果我可以更改xhtml代碼中的調用,但是會有很多代碼不在我的監督下依靠相同的後端,這就是爲什麼我想保持呼叫相同: - blalasaadri我同意接口編程是最乾淨的解決方案,但也太冗長了,因爲我想只有一小袋實用方法的大麻袋。他們是在一個bean中以便像上面寫的那樣用EL來調用。 –
2014-10-06 13:09:50
@DavidP如果你不能改變XHTML,那麼恐怕你會留下一個詳細的解決方案,這是你選擇的解決方案。通話的設計不會允許其他任何事情。 – blalasaadri 2014-10-06 13:12:28
我同意@blalasaadri,這是一個相當有限的。你可能不會找到你已經擁有的更清潔的東西。 – 2014-10-06 13:16:20